Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
Excel VBA:将计算添加到同一工作表中的每个表_Vba_Excel_Excel Formula - Fatal编程技术网

Excel VBA:将计算添加到同一工作表中的每个表

Excel VBA:将计算添加到同一工作表中的每个表,vba,excel,excel-formula,Vba,Excel,Excel Formula,这是的更新版本 感谢@sktneer帮助我解决了问题的第一部分,现在我想 调整代码,因为我在表名和 表,也添加了列 将公式添加到具有表名的表的右侧 我已经在“尝试失败”图片中包含了我对之前答案中代码的一些假设(作为注释)。 你们能告诉我是否正确吗? 因为即使我在谷歌上搜索了这些语句,我也不完全理解代码是如何工作的。试试下面的代码。 下面的代码在进行汇总时不会插入类的名称。 但是,如果工作表上每个表的右侧都有足够的空间用于汇总,则代码将为每个表创建一个汇总权限,如您在所需输出中所示,否则代码将

这是的更新版本

感谢@sktneer帮助我解决了问题的第一部分,现在我想

  • 调整代码,因为我在表名和 表,也添加了列
  • 将公式添加到具有表名的表的右侧
  • 我已经在“尝试失败”图片中包含了我对之前答案中代码的一些假设(作为注释)。
    你们能告诉我是否正确吗?
    因为即使我在谷歌上搜索了这些语句,我也不完全理解代码是如何工作的。

    试试下面的代码。 下面的代码在进行汇总时不会插入类的名称。 但是,如果工作表上每个表的右侧都有足够的空间用于汇总,则代码将为每个表创建一个汇总权限,如您在所需输出中所示,否则代码将覆盖其中的任何数据

    Sub InsertSummaryForEachTable()
    Dim ws As Worksheet
    Dim rng As Range
    Dim i As Integer, c As Long
    
    Application.ScreenUpdating = False
    
    Set ws = ActiveSheet
    
    For Each rng In ws.UsedRange.SpecialCells(xlCellTypeConstants, 3).Areas
        If rng.Rows.Count > 1 And rng.Columns.Count = 4 Then
            c = rng.Cells(1, rng.Columns.Count).Column + 2
            Cells(rng.Rows(1).Row, c).Value = "Total"
            For i = 2 To rng.Rows.Count
                rng.Rows(i).Cells(1).Select
                Cells(rng.Rows(i).Row, c) = rng.Rows(i).Cells(1)
                Cells(rng.Rows(i).Row, c + 1) = "=SUM(" & rng.Rows(i).Address & ")"
            Next i
        End If
    Next rng
    Application.ScreenUpdating = True
    End Sub
    

    你好@sktneer,我已经尝试了上面的代码,它不工作(使用旧表)。这张纸还是原样。另外,对于没有更新所需的输出(如我所提到的,我在前面的问题中添加了一些列和行,然后我试图更改代码,但尝试失败),请在每个表周围插入一个空行和一个空列,代码将正常工作。代码假定每个表由一个空行和一个空列分隔。如果表格上方有一些文本,请插入一个空行。hi@sktneer,我已经上传了我在工作表上的输出。我得到每个表的总数,但不是最后一列的总数(使用前面提供的代码)。我想我实际上在两列之间有一个空白列?当你们显示你们的样本数据时,你们应该保持一致。前面您展示了每个表将有四列名称和三个主题。在您的新示例中有四列。您好@sktneer,很抱歉没有更新此问题所需的输出图像。之前发布的图片是我在前面的问题中试图得到的。但是因为你建议我创建一个新问题,所以我创建了这个问题,但没有得到之前想要的结果。总而言之,我创建这个问题的原因是为了改进我的失败尝试代码(如前一个问题所示),并从表中获得所需的输出。我再次为造成这种混乱道歉。