【问题标题】:Trying to Auto Fill to last row of data尝试自动填充到最后一行数据
【发布时间】:2016-08-11 13:35:01
【问题描述】:

我正在尝试用VLOOKUP 填充一列。我想用数据填充从当前单元格到最后一行的范围。我已经查看了这里的问题并查看了其他示例,它应该可以工作,但它所做的只是停在第一个空白单元格。我正在尝试在D3 中进行 vlookup 并将其自动填充到数据的最后一行。到目前为止,这是我的代码。

Dim lastRow As Long
lastRow = Range("D" & Rows.Count).End(xlUp).Row
Range("D3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[2],Messages.csv!C1:C18,15,FALSE)"
Range("D3").Select
Selection.AutoFill Destination:=Range("D3:D" & lastRow) 

我的设置有什么问题?

【问题讨论】:

  • 您确定不需要FillDown 方法吗?
  • "到最后一行有数据" 数据在哪一列?在D 他们不可能,因为应该有公式。但是您的Range("D" & Rows.Count).End(xlUp).Row 会在D 列中查找最后填充的单元格。根据你的公式可能是lastRow = Range("F" & Rows.Count).End(xlUp).Row

标签: excel vba


【解决方案1】:

试试这个(假设 ActiveCell 是 D3):

Range(Range("D3"),Range("D" & lastrow)).FillDown

【讨论】:

  • 解释FillDownAutoFill 有何不同以及您认为它更可取的原因将有助于此答案。
【解决方案2】:

您应该避免使用.Select.ActiveCell 之类的方法。试试这个:

Dim lastRow As Long
lastRow = Range("D" & Rows.Count).End(xlUp).Row
Range("D3:D" & lastRow) = "=VLOOKUP(RC[2],Messages.csv!C1:C18,15,FALSE)"

如果lastRow 不代表您要查找的最后一行,请将其更改为:

lastRow = Range("<column with the last row you are looking for>" & Rows.Count).End(xlUp).Row

(显然不是那个文字,我想可能是专栏CF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2020-12-29
    • 2018-11-22
    • 2020-11-08
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多