1

範囲内の最後の行を次のように検索するように依頼しました。

Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count

ここで、既知の列と未知の最後の行を持つ範囲を選択したいと思います。正確な数値を挿入して、行をオーバーシュートせずに列全体に入力したいと思います。これが私が持っているものです-

Range("AA2").Select
ActiveCell.FormulaLocal = "=Vlookup(A2,[CP_QR_5_prep.xlsm]Sheet1!A2:LastRow,18,false)"
Selection.AutoFill Destination:=Range("AA2:AA & LastRow)

構文を修正し、lastrow / lastcolumnの使用方法を理解するにはどうすればよいですか?

4

1 に答える 1

3

あなたはかなり近いです。

これらの行の構文は次のとおりです。

ActiveCell.FormulaLocal = "=Vlookup(A2,[CP_QR_5_prep.xlsm]Sheet1!A2:LastRow,18,false)"
Selection.AutoFill Destination:=Range("AA2:AA & LastRow)

する必要があります:

ActiveCell.FormulaLocal = "=Vlookup(A2,[CP_QR_5_prep.xlsm]Sheet1!$A$2:$A$" & LastRow & ",18,false)" 'i added absolute referencing which I would think you need... if not take out the "$" signs
Selection.AutoFill Destination:=Range("AA2:AA" & LastRow)

なぜなら、変数値を文字列に読み込むには、文字列を閉じて変数名を連結する必要があるからです。

また、データを含むセルの実際の最後の行を取得するには、次のようなことを行う方がよいことも追加します。

lastRow = Range("A" & Rows.Count).End(xlUp).Row

UsedRangeシートに書式設定のあるセルや空白のように見えるがそうではない他のセルがある場合、使用すると望ましくない答えが残る可能性があるためです。

于 2012-12-04T22:14:44.410 に答える