自动填充可变行数

Posted

技术标签:

【中文标题】自动填充可变行数【英文标题】:Autofill with variable number of rows 【发布时间】:2013-08-23 19:02:48 【问题描述】:

我正在尝试使用 VBA 在 Excel 中自动生成月度报告,其中最终的自动填充基于可变的行数,这些行数会随着客户端数量的变化而每月发生变化。例如:如果这个月我有 25 个客户,我可以轻松地硬编码我想要创建 25 行的报告。但是在下个月当我有 30 个客户时,我的代码仍然会显示 25,因此会错过 5 个客户。

我正在尝试的一个解决方案是计算行数并将其应用于自动填充公式。试图找到如下代码:Autofill Range A1 to C "Number of rows in Worksheet X."

现在我知道这显然行不通,但这是我最好的尝试:

Sub FillReport()
Sheets("Sheet1").Select
Range("D1").Select
ActiveCell.FormulaR1C1 = "=COUNTA(A:A)"
Sheets("Sheet2").Select
Range("A1:C1").Select
Selection.Autofill Destination:=Range("A1:C(Sheets("Sheet1").Range("D1").Select)")

我没想到这项工作,但无论如何都想尝试一下。如您所见,我是 VBA 新手...

如果有人有任何见解会非常有帮助,因为我觉得应该有一种方法可以实现这一点,而我自己却完全想念。

谢谢。

【问题讨论】:

您应该指定您正在使用的工具(编程语言)以及您到目前为止所取得的成就。 IvanH:对不起,我最初错过了。我正在使用 VBA。我已经能够完全自动化来自 4 个不同电子表格的报告,但我完全停留在最后一块,它本质上只是一个复制和粘贴功能。 如果没有适当的标签,您不太可能得到答案。但是到目前为止,仍然缺少一些尝试过的代码。 感谢您对 IvanH 的帮助。希望通过您的编辑和我刚刚包含的糟糕的编码尝试,我们可以弄清楚。 会有正确的行数开始吗? 【参考方案1】:

我喜欢使用手动创建的范围值来做到这一点,以使其更清晰。

比如:

Dim myRngStr as string
myRngStr = "A1:D" & Sheets("Sheet1").Range("A1").end(xldown).row 'I don't know where you will find this actually
Range("A1").Autofill Destination:=Range(myRngStr)

【讨论】:

我不断收到“范围类的自动填充方法失败”消息。你能给我一些关于如何将它输入到我的潜艇以及我必须相应更改哪些项目的说明吗?我从未使用过“myRngStr”,因此很可能我没有正确执行您的答案。

以上是关于自动填充可变行数的主要内容,如果未能解决你的问题,请参考以下文章

自动填充目标创建更长的运行时间

VBA 自动填充 - 单元格引用变量

如何根据变量值“n”自动填充单元格

使用自动填充和清除匹配相邻列 - 宏中的错误提示

UITableview 单元格内的 UILabel,自动布局填充问题

EXCEL:使用与单元格中的数字匹配的自动填充数据/函数创建/删除行