【发布时间】:2011-10-05 13:05:19
【问题描述】:
工作项目的一项要求是将特定数量类别的小时值按天汇总在一起。这些值存储在电子表格中的一长列中;为了获得这些值,我将每 24 行相加到新的一天。这可以通过遍历电子表格并将每个循环的值增加 24 来实现。
例如:
first = 1
second = 24
i = 0
While Worksheets("Data").Range("A1").offset(i, 0) <> ""
Worksheets("Data").Range("C1").offset(i, 0).Formula = "=SUM(B" & first & ":B" & second & ")")
first = first + 24
second = second + 24
Wend
其中 A 列是类别,B 列是每小时数据。 B 列将是 A 列的长度 * 24。
这会产生类似...的结果
=SUM(B1:B24)
=SUM(B25:B48)
=SUM(B49:B72)
.. 等等。
这很好用,但速度很慢。我想做的是在整个范围内使用 AutoFill,但我不确定如何编写它,以便每次将值增加 25。到目前为止,我只能让它为每个值增加一,其中
=SUM(B1:B24)
变成
=SUM(B2:B25)
有没有办法在一个范围内使用自动填充,它会增加一个可变数字——在本例中为 24?
提前致谢。
【问题讨论】:
-
那是你的实际代码吗?你在哪里增加 i ?
-
难道不能使用 Excel 小计吗?它会很容易地做到这一点(只要你有一个关于这一天的专栏)。
-
@Tim:不,这是演示这个想法的示例代码。我现在看到我应该进一步审查它。在循环中,i 会加一。
-
@Tiago Cardoso:我会试试小计;我现在不在工作,但明天早上我会试一试。谢谢。
-
好吧@PaulR,正如我所说...有很多方法可以做同样的事情,也许使用小计,也许正如我在下面提到的那样......只需选择最适合您的需求:-)