Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA汇总excel中的行_Vba_Excel_Sum - Fatal编程技术网

如何使用VBA汇总excel中的行

如何使用VBA汇总excel中的行,vba,excel,sum,Vba,Excel,Sum,我正在使用VBA创建第一个模块,但不确定如何汇总行。我想知道是否有人能帮我。我有一份交易档案,附图片: 我试图在日期组之间插入一个分隔符(空行)(将特定日期的所有交易分组),然后在相应日期的每列下插入分隔符中每个总数的总和。我的代码如下所示,但由于不确定语法,我一直无法确定如何创建和。下面是我想出的代码: Sub InsertRowsBetweenDates() ' ' InsertRowsBetweenDates Macro ' Insert Rows in between two

我正在使用VBA创建第一个模块,但不确定如何汇总行。我想知道是否有人能帮我。我有一份交易档案,附图片:

我试图在日期组之间插入一个分隔符(空行)(将特定日期的所有交易分组),然后在相应日期的每列下插入分隔符中每个总数的总和。我的代码如下所示,但由于不确定语法,我一直无法确定如何创建和。下面是我想出的代码:

    Sub InsertRowsBetweenDates()
'
' InsertRowsBetweenDates Macro
' Insert Rows in between two dates that are not equal
'
Dim x As Integer
Dim y As Integer
Dim row1 As Range
Dim row2 As Range
Dim t As Integer 'tracking how many cells to add together


'define x as cell row value
x = 2
'define y as cell row value
y = 3
'start tracker at 0
t = 0
'row 1 and row 2 get their values
Set row1 = Cells(x, 4)
Set row2 = Cells(y, 4)

'Do until there are no more entries in the worksheet (or really until row 1 has no value)
Do Until row1.Value = False
    x = x + 1
    y = y + 1
    Set row1 = Cells(x, 4)
    Set row2 = Cells(y, 4)
    t = t + 1

    'If row 1 and 2 don't equal each other, insert a row above row 2
    If row1 <> row2 Then
        row2.EntireRow.Insert Shift:=xlDown

        'sum up t rows for subtotal and tax [THIS IS WHAT IM STUCK ON]


        'skip the break            
        x = x + 2
        y = y + 2
        Set row1 = Cells(x, 4)
        Set row2 = Cells(y, 4)
        t = 0

    End If
Loop

End Sub
Sub insertrowsbetween-dates()
'
'InsertRowsBetween Dates宏
'在两个不相等的日期之间插入行
'
作为整数的Dim x
Dim y作为整数
将行1变暗为范围
将行2变暗为范围
Dim t作为整数“跟踪要加在一起的单元格数
'将x定义为单元格行值
x=2
'将y定义为单元格行值
y=3
'在0处启动跟踪程序
t=0
'第1行和第2行获取它们的值
设置行1=单元格(x,4)
设置行2=单元格(y,4)
'直到工作表中没有更多条目为止(或者直到第1行没有值为止)
执行直到第1行。值=False
x=x+1
y=y+1
设置行1=单元格(x,4)
设置行2=单元格(y,4)
t=t+1
'如果第1行和第2行不相等,请在第2行上方插入一行
如果第1行第2行,则
行2.EntireRow.Insert Shift:=xlDown
'汇总t行小计和税[这是我一直坚持的观点]
“跳过休息时间
x=x+2
y=y+2
设置行1=单元格(x,4)
设置行2=单元格(y,4)
t=0
如果结束
环
端接头

正如您所看到的,我开始工作了,尽管它只适用于这个文件,因为行和列的位置是硬编码的,但这只是一个开始。此时,我有一个跟踪程序来跟踪已经计算了多少行,我想我只需要插入代码来汇总这些行。我该如何实现这一目标?

我认为你完全走错了方向。 我不会那样做,除非我完全不得不这样做

为什么?

因为你把数据和报告放在一起。当有人需要插入一行时会发生什么?当有人必须维护您的代码时会发生什么

请查看以下选项: 1.将源代码用作摘要,并用 2.添加一列并使用该函数


通过这些方法,您可以避免完全使用VBA,并且仍然能够获得所需的报告。祝你好运

谢谢,我的excel知识非常有限,所以我对pivot表一无所知,也不知道sumif。。。我会仔细阅读并尝试一下!绝对比在没有这些知识的情况下编写代码容易!在只使用了您发送给我的表链接之后,我已经解决了过滤器和总行的问题,尽管我不能同时查看它们,这会有点烦人。。。我将查看其他两个链接,看看是否可以同时显示所有总计(不带过滤器),谢谢您的帮助!废弃的VB模块,哈哈,虽然很有趣。。。。