1

我已要求在 Range 中找到最后一行,其中包含以下内容:

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 回答