Excel 对多个选项卡VBA上的表求和/平均行数

Excel 对多个选项卡VBA上的表求和/平均行数,excel,vba,subtotal,Excel,Vba,Subtotal,我想为总和或平均数添加小计。这些选项卡上的表都具有相同的行长度和相同的标题有一组8个选项卡,其中有3个额外的列,因此我将在后面的部分中创建另一个循环 我不知道如何使下面代码中的表引用通用于引用该特定选项卡上的任何表。这就是我目前所拥有的…任何帮助都将不胜感激!谢谢大家! Sub AddTotals() Dim tablename As Range Dim TargetSheet As Worksheet Dim tbl As ListObject Dim rng As Range Works

我想为总和或平均数添加小计。这些选项卡上的表都具有相同的行长度和相同的标题有一组8个选项卡,其中有3个额外的列,因此我将在后面的部分中创建另一个循环

我不知道如何使下面代码中的表引用通用于引用该特定选项卡上的任何表。这就是我目前所拥有的…任何帮助都将不胜感激!谢谢大家!

Sub AddTotals()

Dim tablename As Range
Dim TargetSheet As Worksheet
Dim tbl As ListObject
Dim rng As Range

Worksheets("Tab Names").Activate

For Each tablename In Worksheets("Tab Names").Range("B1:B64").Cells
    Set TargetSheet = Worksheets(CStr(tablename.Value))
    Set rng = Range(TargetSheet.Range("F11"), TargetSheet.Range("F11").SpecialCells(xlLastCell))

    Range("F11").Select
    ActiveSheet.ListObjects(Active).ShowTotals = True
    Range("Table2[[#Totals],[Var %]]").Select
    ActiveSheet.ListObjects("Table2").ListColumns("Var %").TotalsCalculation = _
    xlTotalsCalculationAverage
    Range("Table2[[#Totals],[Var $]]").Select
    ActiveSheet.ListObjects("Table2").ListColumns("Var $").TotalsCalculation = _
    xlTotalsCalculationSum

Next tablename

如果每张表上只有一个表,那么解决方案就相对简单。但是,如果有多个表,则需要在“选项卡名称”表上标识表名和选项卡名称。如果每张工作表只有一个表,那么下面是解决方案

For Each tablename In Worksheets("Tab Names").Range("B1:B64")
    Set TargetSheet = Worksheets(CStr(tablename.Value))
    With TargetSheet.ListObjects(1)
        .ShowTotals = True
        .ListColumns("Var %").TotalsCalculation = xlTotalsCalculationAverage
        .ListColumns("Var $").TotalsCalculation = xlTotalsCalculationSum
    End With
Next tablename

我删除了代码中许多不必要的范围选择。使用对象时不需要选择对象。事实上,如果您这样做,它会减慢速度。

只是为了验证,给定RangeTable2[[Totals],[Var%]]。选择要用tablename替换Table2吗?然后就是连接这个字符串的问题。RangeCStrtablename.Value&[[Totals],[Var%]]。SelectI还希望连接ActiveSheet行,以便可以为每个选项卡添加小计!