• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 範囲指定について)

VBAで範囲指定について

このQ&Aのポイント
  • VBAでシートAの範囲A1:B200までをコピーしてシートBの範囲A1:B200にコピペする方法について相談です。
  • 範囲のB200のみ変動する可能性があるため、変動に対応する方法を知りたいです。
  • C1に行数を指定して対応する方法があるかどうか、VBAの詳しい知識がないため教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>B〇〇〇の所に変動できる数値を関数でC1に行数指定 との事ですが、そのC1とは、どのシートのC1セルの事なのでしょうか?  入院費用一覧シートのC1セルの事なのでしょうか? それともAシートのC1セルの事なのでしょうか? それともBシートのC1セルの事なのでしょうか?  取り敢えず、AシートのC1セルに「B〇〇〇の所に変動できる数値」の値が存在している場合に対応するVBAを御伝えしておきますので、もしシートが違っている場合には指定するシートを適時変更して下さい。 Dim myRange As Range, buf As Variant buf = Worksheets("A").Range("C1").Value If Not(buf > 1 and buf <= Rows.Count) Then buf= 0.5 If buf > Int(buf) Then Msgbox "C1セルlに行数が指定するための値が入力されておりません>" _ & vbCrLf & "マクロを終了いたします。" & vbExclamation, "行数未設定" Exit Sub End If Set myRange = Worksheets("入院費用一覧").Range("A1:B" & buf) Worksheets("B").Range("A1") _ .Resize(myRange.Rows.Count_,myRange.Columns.Count).Value _ = myRange.Value Worksheets("B").Activate

その他の回答 (2)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.3

こんにちは ひょとして、セルC1で数値で指定しなくても、最終行を判定するだけ良いなら、 Sub test()   Dim t As String   With Worksheets("入院費用一覧")     t = .Range("A1", .Range("B" & Rows.Count).End(xlUp)).Address     Worksheets("B").Range(t).Value = .Range(t).Value   End With End Sub とかでも。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

sub macro1()  dim LastRow as long  lastrow = worksheets("不明の").range("C1").value  worksheets("B").range("A1:B" & lastrow).value = worksheets("A").range("A1:B" & lastrow).value end sub みたいにします。

関連するQ&A