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

时间:2017-04-15 08:33:17

标签: excel vba excel-vba excel-formula

这是here的更新版本。

Desired output

Table

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

  1. 调整代码,因为我在表名和表之间添加了几行(行) 表,也添加了列
  2. 使用表格名称
  3. 将公式添加到表格的右侧

    我在“失败的尝试”图像的前一个回答中包含了我对代码(作为评论)的一些假设 如果这是正确的,请你告诉我吗? 因为我不完全理解代码是如何工作的,即使我用google搜索语句。

1 个答案:

答案 0 :(得分:0)

尝试以下代码。 在进行总摘要时,下面的代码不会插入类的名称。 但是代码将为您在所需输出中显示的每个表创建一个摘要,前提是在页面上的每个表的右侧有足够的空间进行汇总,否则代码将覆盖任何数据(如果在那里找到)。

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