[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『InputBoxのキャンセル処理』(めぐ)
いつも拝見させて頂いてます。 下記コードでInputBoxに入力したセル番地を基点に Range("A1:D1")をコピーしたデータを値貼り付けしてるのですが、 キャンセルボタンを押下したらどうしてもエラーがでるので、 解決方法をご教授いただけないでしょうか?Help機能やサイトを参考にしても ダメでした。。すみません。。
Sub test() Dim myR
myR = Range("" & Application.InputBox _ ("セルを選択してください", Type:=8).Address).Select If myR = "" Then Exit Sub Range("A1:D1").Copy Selection.PasteSpecial Paste:=xlPasteValues
End Sub
こんな感じですか?(ROUGE) '---- Sub test() Dim myR As Range On Error Resume Next Set myR = Application.InputBox("セルを選択してください", Type:=8) If myR Is Nothing Then Exit Sub On Error GoTo 0 myR.Resize(, 4).Value = Range("A1:D1").Value End Sub
ROUGE様、ありがとうございました。 できました。
>myR = Range("" & Application.InputBox _ ("セルを選択してください", Type:=8).Address).Select こんなつづり方しかわからず、固執してたので On Error〜 とかもやみくもに試してたので当然ダメだったんです。 よく勉強致します。(めぐ)
たびたび申し訳ありません。 先ほどのコードは私もTEST用で、実際のデータには実は 別ブックの指定シートからデータを拾い、このコードのあるブックに InputBoxに入力したセル番地を基点に転記するというものなんですが、
>myR.Resize(, 4).Value = Range("A1:D1").Value こちらの書き方をどうつづればよいでしょうか? コピー範囲が2行なのでわかりません。すみません。
Sub 部品()
Dim WS2 As Worksheet Set WS2 = Worksheets("部品")
Application.ScreenUpdating = False
Range("" & Application.InputBox _ ("セル番地を入力してください", Type:=8).Address).Select Windows("売上.xls").Activate Sheets("転記用").Select Range("A14:R15").Copy Windows("予算.xls").Activate WS2.Select Selection.PasteSpecial Paste:=xlPasteValues
Application.ScreenUpdating = True
End Sub
Sub 部品() Dim rng As Range On Error Resume Next Set rng = Application.InputBox("セル番地を入力してください",Type:=8) If rng Is Nothing Then Exit Sub On Error GoTo 0 With rng ThisWorkbook.Sheets("部品").Range("a1").Resize(,Rows.Count,.Columns.Count).Value = .Value End With Set rng = Nothing End Sub
かな? (seiya)
seiya様、お世話になります。 エラーがでましたので <If rng = Nothing Then Exit Subを If rng Is Nothing Then Exit Subにしてみたらエラーが消えたのですが これで良かったでしょうか?知識に乏しいので思いつくまま変更しただけ なのです。すみません。
そして私の理解力が無く大変申し訳ないのですが、 売上.xls シート:転記用のRange("A14:R15").Copyはどこに入れれば よいでしょうか? Withの前に入れてみたのですが、本コードがある予算.xls シート名:部品に 今度はInputBoxに入力したセル番地を基点に貼りつかなくなりまして。。 (めぐ)
おっと、 Is でした。(修正済) InputBox で Select できませんか? (seiya)
こっちでは?(ROUGE) '---- Sub 部品() Dim myR As Range, ws As Worksheet On Error Resume Next Set ws = Workbooks("売上.xls").Sheets("転記用") If ws Is Nothing Then MsgBox "「売上」ファイルが開かれていないか、" & Chr(10) & _ "開かれていても「転記用」シートが存在しません。" Exit Sub End If Set myR = Application.InputBox("セルを選択してください", Type:=8) If myR Is Nothing Then Exit Sub On Error GoTo 0 With ws.Range("A14:R15") myR.Resize(.Rows.Count, .Columns.Count).Value = .Value End With End Sub
seiya様、ROUGE様お時間さいていただきありがとうございました。 お蔭様でできました。 Resizeをヘルプやネットで調べて私も勉強いたします。(めぐ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.