在范围中使用最后一行

时间:2012-12-04 22:07:26

标签: excel-vba vba excel

我已经要求使用以下内容找到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?

1 个答案:

答案 0 :(得分:2)

你非常接近。

这些行的语法:

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可能会给您留下不需要的答案。