【问题标题】:Add every third column together, two variable cells in one VBA将每三列相加,一个 VBA 中的两个变量单元格
【发布时间】:2014-07-31 06:27:20
【问题描述】:

我有一个电子表格,它汇总了出纳员的收入差异并将其分解为现金、卡和支票交易。我试图运行创建一个 VBA,它将今年迄今为止的总现金(等)差异加在一起,但我已经完全陷入困境。这是我可以用两个变量做的事情吗?

还需要注意的是,当我核对出纳员的收入以计算差异时,我的 VBA 会在 D 和 E 之间插入 3 列,并添加当天的新差异。

A 列 = 出纳员姓名(此数字可能随时间变化)

B 列 = 总现金差异

C 列 = 总卡片差异

D 列 = 总检查差异

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

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

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

G 列 = 2014 年 5 月 7 日检查差异

H 列 = 04/07/2014 现金差异

ETC

我试过了:

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

。 . .等等,但由于 sum 函数只允许我输入 30 个数字(护林员),这只会持续 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)"

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

谁能提出更有效的方法?

提前谢谢你。

【问题讨论】:

    标签: excel vba variables add multiple-columns


    【解决方案1】:

    如果您想对每三列或每行求和,您应该使用循环。使用什么类型的循环取决于您的确切问题。

    在您的第一个代码中,您希望每隔三列求和一次,可能如下所示:

    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,因为我不知道你需要总结多少列。

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

    您可以在此处阅读有关循环的更多信息:http://www.ozgrid.com/VBA/loops.htm

    【讨论】:

      猜你喜欢
      • 2021-08-04
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多