2017-04-15 67 views
-1

這是here的更新版本。Excel VBA:將計算添加到同一工作表中的每個表格

Desired output

Table

感謝@sktneer誰幫我出解決問題的第一部分,現在我想

  1. 調整的代碼,我已經添加了幾行(行)表格名稱與 表格之間,也添加了列
  2. 將表格添加到表格右側

我已經在「失敗的嘗試」圖片中包含了我之前回答的代碼(作爲評論)的一些假設。
請問我們知道這是否正確?
因爲我沒有完全理解代碼是如何工作的,即使我在Google上做了Google搜索。

回答

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 
+0

嗨@sktneer,我已經嘗試了上面的代碼,它不工作(使用舊錶)。工作表保持不變。此外,道歉沒有更新所需的輸出(正如我所提到的,我添加了上一個問題的一些列和行,然後嘗試從您的代碼更改,但嘗試失敗) – Santa

+0

在每個表的周圍插入一個空行和一個空列該代碼將工作。該代碼假定每個表由一個空白行和一個空白列分隔。如果表格上方有一些文字,請插入一個空行。 – sktneer

+0

hi @sktneer,我已經上傳了我現在在工作表上的輸出。我得到每個表的總數,但不是最後一列(使用前面提供的代碼)。我以爲我的列之間實際上有空白欄? – Santa

相關問題