>何行目まで、というのを変数にしてマクロで実装しようとしています。
辞書の範囲が増えても
Range("B:F")
と指定すれば最終行を求める必要はないのですが
マクロ上でVLOOKUPを利用する場合
Application.VLookup(検索値, 範囲, 列番号, 検索方法)
範囲(SerchArea) は Rangeオブジェクトです
ちと修正すると
Sub sample()
'ここから
Dim objWBK As Workbook
Dim objSH As Worksheet
Dim SerchArea As Range
Set objWBK = Workbooks("辞書ブック.xls")
Set objSH = objWBK.Worksheets("辞書シート")
Set SerchArea = objSH.Range("B:F")
'ここまでが検索範囲の定義です
For I = 11 To ColumnCnt 'ColumnCntは変数ですか?提示されたマクロには定義されていませんが、そのまま残しておきます
ItemCode = Cells(I, 3)
Cells(I, 16).Value = Application.VLookup(ItemCode, SerchArea, 2, False)
Next
End Sub
これで動くな?
追記:
ちなみにVLOOKUPでは項目は1つしか取得できないため4項目をコピーするのに4回実行が必要ですが
Findメゾットを利用すると
Sub sample()
Dim objWBK As Workbook
Dim objSH As Worksheet
Dim SerchArea As Range
Dim ItemCode As Range
Set objWBK = Workbooks("辞書ブック.xls")
Set objSH = objWBK.Worksheets("辞書シート")
Set SerchArea = objSH.Range("B:B")
For I = 11 To ColumnCnt
Set ItemCode = Cells(I, 3)
Buf = SerchArea.Find(What:=ItemCode.Value).Offset(0, 1).Resize(1, 4)
ItemCode.Offset(0, 1).Resize(1, 4) = Buf
Next
End Sub
一回の処理で4列分コピーできます
お礼
ありがとうございました!無事想定通りに動きました!