|
はじめまして。VBAはじめて半年ほどの者です。
今回、以下のようなマクロを組みました。
セル範囲Range("A19:D40")の中のデータで、
別テーブル内、Aの列のデータがあれば、Bの列のデータに置き換える、というマクロです。
以下のコードで、正常に動作しました!
Sub 範囲内で置き換え()
Dim mr As Range
Dim A(13) As String
Dim B(13) As String
Dim i As Integer
For i = 0 To 13
A(i) = Cells(i + 2, 3)
B(i) = Cells(i + 2, 4)
For Each mr In ActiveSheet.Range("A19:D40")
If mr.Value = A(i) Then
mr.Value = B(i)
End If
Next
Next
End Sub
これは、静的配列なのですが、動的配列にしたくて、変数iを、
そのときのテーブルの行数によって変わるように、
Selection.CurrentRegion.Select
Selection.End(xlDown).Activate
i = ActiveCell.Row
とすると、テーブルの行数が変わっても動作するようになりました。
私がしたいのはこれからです。
セル範囲、Range("A19:D40")が、そのときによって範囲(行数)が変わるばあい、
Range(Cells(19, 1), Cells(4, i))・・・iは上記のように、行数を取得したいのですが、
エラーがでてうまく動きません。
このように、セル範囲の行数がそのときによって変わる場合はどのようにしたらよいのでしょうか?
すみませんが、助言いただければと思います。よろしくお願いいたします!
|
|