将每个第三列一起添加到一个VBA中的两个可变单元格

我有一个电子表格,汇总出纳员的差额,并将其分解为现金,卡和支票交易。 我试图运行创build一个VBA,将今年迄今的总现金(等)差异加在一起,我已经完全卡住了。 这是我能用两个variables做的吗?

同样重要的是要注意,当我协调出纳员的计算差异时,我的VBA会在D&E之间插入3列,并在当天增加新的差异。

列A =出纳员姓名(这个数字可以随着时间变化)

B栏=总现金差额

C栏=总卡片差异

D列=总检查差异

[这些是我想显示运行总数的列]

E栏= 05/07/2014现金差异

F栏= 05/07/2014卡片差异

G列= 05/07/2014检查差异

专栏H = 04/07/2014现金差异

等等

我努力了:

For i = 2 To WSlr 'last row WS.Cells(i,2).Value = WorksheetFunction.Sum(Range("E" & i), Range("H" & i), Range("K" & i), Range("N" & i), Range("Q" & i), Range("T" & i)) Next i 

。 。 。 等等,但总和function只允许我input30个数字(游侠)这只会持续10天。 更何况这是非常耗时的进入。

•我也尝试在单元格中粘贴一个公式:

 ActiveCell.FormulaR1C1 = "=SUM(RC5,RC8,RC11,RC14,RC17,RC20,RC23,RC26,RC29,RC32,RC35,RC38,RC41,RC44,RC47,RC50,RC53,RC56,RC59,RC62,RC65,RC68,RC71,RC74,RC77,RC80,RC83,RC86,RC89,RC92,RC95,RC98,RC101,RC104,RC107)" 

但是,当我插入下一个date时,这不再有效(因为它跳过了新的列input)。

任何人都可以提出一个更有效的方法做到这一点?

先谢谢你。

如果你想总结每第三列或行,你应该使用循环。 什么types的循环使用取决于你确切的问题。

在你的第一个代码中,你需要对每个第三列进行求和,如下所示:

 Dim sum12 As Double 'type depends on data you have in your cells Dim y As Integer, i As Integer For i = 2 To WSlr ' last row sum12 = 0 For y = 5 To 100 Step 3 sum12 = sum12 + Cells(y, i) Next y WS.Cells(i, 2).Value = sum12 Next i 

你需要调整y ,因为我不知道你需要总结多less列。

这段代码将每行添加第三列单元格。 在一行中添加所有给定的单元格之后,它将移动到下一行,直到到达WSlr (最后一行)。

你可以阅读更多关于循环的例子: http : //www.ozgrid.com/VBA/loops.htm