• 締切済み

VLookupで参照する範囲を変数で渡したい

マクロ内で開いた別ファイルにあるリストをVLookupで参照するマクロを作っています。 固定のファイルで行う場合には以下の内容で動いています。 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],'070801.xls'!R1C1:R2430C6,6,FALSE)" このファイル名[070801.xls]とセル範囲(行数がファイルによって違う)のを変数で渡す必要があります。 #細かい部分は割愛しています。 Workbooks.Open Filename:=Fname, ReadOnly:=True 'ファイル読み込み Range("A1").CurrentRegion.Select 'データ全体選択 Selection.SpecialCells(xlCellTypeLastCell).Select '最終行検出 endRcell = ActiveCell.Row ********ここの間に入る処理 ********多分「Range(Cells(1, 1), Cells(endRcell, 6))」など ThisWorkbook.Activate Range("H2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],?????,6,FALSE)"                              ↑ここに指定する変数 2カ所について、どのように指定すればよいのか分かりません。 色々試してみたのですが・・・・ よろしくお願いいたします。

みんなの回答

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

ka_na_deです。 変数にしたいという質問でしたね。 これで、どうでしょう? Sub test2()  Dim Rng As Range  Set Rng = Workbooks("070801.xls").Worksheets("Sheet1").Range("A1:F2430")  ActiveCell.Value = _   WorksheetFunction.VLookup(ActiveCell.Offset(, -4).Value, Rng, 6, False) End Sub

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.1

これでどうですか? 見やすくするために、 _ で、改行を繰り返していますが、 1行でも結構です。  ActiveCell.Value = _    WorksheetFunction.VLookup( _      ActiveCell.Offset(, -4).Value, _      Workbooks("070801.xls").Worksheets("Sheet1").Range("A1:F2430"), _      6, _      False)

関連するQ&A