excel - 具有动态范围的自动填充

标签 excel vba dynamic autofill

我正在构建一个程序来自动化一些工作,使用记录然后清理。它一直运行良好,直到计算对我来说太长了。它是一个简单的嵌套 IF 语句

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

我们处理的数据范围从 10 行到数十万行。到目前为止我不满意的“解决方案”将自动填充限制在 A1:A35000 范围内 - 这仍然需要 Excel 进行一些处理。这是避免 xlDown 将我带到第一百万行的解决方案。此外,我尝试过减小纸张尺寸,这也有效,但不是一个好的解决方案。

代码如下所示:

Selection.AutoFill Destination:=ActiveCell.Range("A1:A35000"), Type:= _
    xlFillDefault

我想做的是:

  1. 从给定单元格中的数字引用的范围自动填充(因此,如果我输入的数据为 500 行,我会在一个单元格中输入 500 行,并且所有自动填充均来自 A1:A500),或者

  2. 更优选地,这可以通过让程序已经识别要自动填充的范围来自动完成。

我已经检查了解决方案,但不知道如何将其应用到我的情况。

最佳答案

我想您可能正在寻找以下内容......

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) 选项的优越性:)

关于excel - 具有动态范围的自动填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161637/

相关文章:

sql-server - 在 ssis 中动态加载 .xlsx 文件

php - 有没有办法使用 ODBC 让用户能够将 MySQL 作为格式化的 excel 文件下载?

excel - 在 Excel VBA 中替换(powerpoint)形状而不更改其位置编号

dynamic - 如何动态创建捕获 (Raku)

javascript - 动态 GetElementById - 它为空

java - 如何使用poi合并两个excel工作簿?

python - 有没有办法使用 Pandas Dataframes 在 Excel 中设置敏感度标签?

vba - 选拔成员方法

excel - 选择第一个过滤的单元格,然后移至下一个过滤的单元格

html - 两个动态大小并排的容器,左侧容器带有省略号