尝试自动填充到最后一行数据

Posted

技术标签:

【中文标题】尝试自动填充到最后一行数据【英文标题】: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 【参考方案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

【讨论】:

以上是关于尝试自动填充到最后一行数据的主要内容,如果未能解决你的问题,请参考以下文章

范围自动填充一行,最好只使用变量

如何自动填充活动单元格的列直到最后一行

通过将活动单元格的范围提供给列的最后一行来显示自动填充命令范围中的错误

从范围中选择最大数值并自动填充

Delphi在提取数据填充到Grid上面总是一行行的闪烁加载、如何解决?

范围类上的自动填充错误