用于在 Excel 中自动填充列的宏

用于在 Excel 中自动填充列的宏

我在 Excel 中录制了一个宏,该宏用公式填充列。但是,它仅限于我在测试数据中使用的范围,即,当我使用不同的(较长的)数据集时,它不会填充到最后一行数据:

ActiveCell.FormulaR1C1 = "Term"
Range("H2").Select
ActiveCell.FormulaR1C1 = "=ROUND((RC[-1]-RC[-2])/30,0)"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H11")
Range("H2:H11").Select

如您所见,范围仅限于H2:H11– 但我希望它自动填充到数据集中填充的最后一行数据。这可以通过检查 A 列是否已填充来完成,但我找不到可以运行的代码 – 对我来说没有什么足够简单的代码可以理解。

数据有 10,000 行,包含多列,这个宏的特定部分正在将公式填充到空白列中,但我只想填充 10,000 行。A 列中有数据,那么我如何使用它来定义自动填充公式的范围?

我已经看到这里的其他答案提到将数据转换为 Excel 中的表格 - 但我不愿意这样做,因为我正在处理 10,000 多行的数据集,并且这会增加很多额外的格式等。

答案1

您可以尝试ActiveSheet.UsedRange.Rows.Count返回当前工作表的最后一行号。虽然它不检查 A 行,但它是一种将数据填充到最后一行的巧妙方法。

例如

lastRow = ActiveSheet.UsedRange.Rows.Count
' ... something else ...
Selection.AutoFill Destination:=Range("H2:H" & lastRow)

如果您希望指定要处理的工作表,则可以Activesheet用对象替换。Worksheet

相关内容