我需要根据以下标准对excel中的每个工作表应用小计,除了当前工作表或活动工作表: 分类汇总 在每次变化中 第9栏 和 第17栏和第18栏
我使用了以下代码,但它给了我一些奇怪的错误。
Private Sub CommandButton2_Click()
Dim ws1 As Worksheet
For Each ws1 In Sheets
If Not ws1 Is ActiveSheet Then
Range("A1:V5").Select
Selection.Subtotal GroupBy:=9, Function:=xlSum, TotalList:=Array(17, 18), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End If
Next ws1
End Sub
答案 0 :(得分:0)
您当前的代码在活动工作表上执行小计,因为您从不告诉它使用ws1
作为执行任务的工作表。
尝试以下方法:
Private Sub CommandButton2_Click()
Dim ws1 As Worksheet
For Each ws1 In Worksheets
If Not ws1 Is ActiveSheet Then
ws1.Range("A1:V5").Subtotal GroupBy:=9, Function:=xlSum, TotalList:=Array(17, 18), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End If
Next ws1
End Sub
修改:要将多个工作表排除在小计之外,请使用类似的内容:
Private Sub CommandButton2_Click()
Dim ws1 As Worksheet
For Each ws1 In Worksheets
If ws1.Name <> "Control" And ws1.Name <> "AnotherSheet" Then
ws1.Range("A1:V5").Subtotal GroupBy:=9, Function:=xlSum, TotalList:=Array(17, 18), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End If
Next ws1
End Sub