我正在构建一个程序,使用记录然后进行清理以使某些工作自动化。它一直运行良好,直到计算对我来说花费太长时间。它是一个简单的嵌套IF语句
ActiveCell.FormulaR1C1 = _
"=IF(RC[-16]="""",""MISSING"",IF(RC[-14]="""",""MISSING"",RC[-14]-RC[-16]))"
我们处理的数据范围可能只有10行到数十万。到目前为止,我不满意的“解决方案”将自动填充功能限制在A1:A35000范围内-这仍然需要Excel来处理。这是避免xlDown
将我带入第100万行的解决方案。此外,我尝试减小纸张尺寸,虽然效果不错,但不是一个好的解决方案。
这是代码的样子:
Selection.AutoFill Destination:=ActiveCell.Range("A1:A35000"), Type:= _
xlFillDefault
我想做的是:
给定单元格中数字引用的范围内的自动填充(因此,如果我放入的数据为500行,则我输入500,并且所有自动填充都来自A1:A500),或
更可取的是,这将通过让程序已经识别出要自动填充的范围来自动完成。
我已经检查了解决方案,无法弄清楚如何将其应用于我的情况。
我想您可能正在寻找以下...
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)选项的优越性:)