自动填充dynamic范围

我不是一个非常有经验的VBA程序员,我知道非常基础。 现在我正在构build一个程序来自动化一些工作,使用logging然后清理。 它一直工作得很好,直到一个计算,我需要很长的时间。 它是一个简单的嵌套IF语句

ActiveCell.FormulaR1C1 = _ "=IF(RC[-16]="""",""MISSING"",IF(RC[-14]="""",""MISSING"",RC[-14]-RC[-16]))"

我们处理的数据范围从只有10行到几十万。 我目前不满意的“解决scheme”将自动填充范围限制在A1:A35000范围内,这仍然需要一些时间来处理。 这是避免xldown把我带到第100万行的解决scheme。 此外,我已经尝试减小纸张尺寸,但也不是很好的解决scheme。

这就是代码看起来像Selection.AutoFill Destination:=ActiveCell.Range("A1:A35000"), Type:= _ xlFillDefault

我想要做的是A)从一个给定的单元格中的数字引用的范围自动填充(所以如果我放的数据是500行,我有一个单元格我input500,所有自动填充从A1:A500去)

B)更优选地,这将通过使程序已经识别到自动填充的范围来自动完成。

我已经检查了解决scheme,并不知道如何将其应用于我的情况。

感谢您提供任何帮助/支持。

我想你可能正在寻找以下…

 Dim ws as Worksheet Set ws = Worksheets("Sheet1") Dim usedRows as Long 'Option One (not recommended): USED RANGE METHOD usedRows = ws.UsedRange.Rows.Count 'Option Two (more robust) .END(xlUp) METHOD (Assuming you have your Data in column "RC") usedRows = ws.Cells(ws.Rows.Count, "RC").End(xlUp).Row 'YOUR 'CODE 'HERE Selection.AutoFill Destination:=ws.Range(Cells(1,1),Cells(usedRows,1)), Type:= _ xlFillDefault 

如果该列在工作表中有最常用的行。

感谢@scott指出.End(xlUp)选项的优越性:)