2014-09-25 47 views
0

我有一個Excel文檔。Excel VBA每個新工作表的副本數據

我的問題是:每次創建新文檔時,都需要移動數據。還會自動彙總數據。 表1是我的總結。

假設我有一個名爲「sum」的列,而在sheet2中我有一個列的價格。如果我在工作表2中設置價格A1 = 1(int),則應將其發送到工作表1(摘要)中的列總和。如果我然後複印工作表2並創建工作表3並在工作表3的價格中插入值1,則它將在工作表1(摘要)中結束。總和shuld然後在第1頁2. 有沒有辦法做到這一點?

回答

0

請把它放在VBAProject - > ThisWorkbook。 每次保存文件更改時它都會自動更新。如果你想讓它適用於多個單元格,你只需要在評論處添加循環。

Private Sub Workbook_AfterSave(ByVal Success As Boolean) 

    Dim wb As Workbook 
    Set wb = ActiveWorkbook 

    Dim wbSize As Integer 
    wbSize = wb.Sheets.Count 

    Dim Sum As Long 

    ' Open loop to apply to more than only 1 cell 
    Sum = 0 

     For i = 2 To wbSize 

      Sum = Sum + wb.Sheets(i).Cells(1, 1).Value 

     Next 

    wb.Sheets(1).Cells(1, 1) = Sum 
    ' Close the loop 

End Sub 
+0

我tryed複製Sheet2中的contctent並創造軒泰1(摘要)的總和電池板3這是代碼:= Sheet2的J73 我tryed添加您的代碼,但它沒有更新。而且很可能是因爲= sheet2!J73。 – user2053451 2014-09-25 13:00:17

+0

你保存了文件嗎?如您所見,每次保存更改時,Excel都會運行代碼。此外,除了「ThisWorkbook」模塊的代碼外,不需要添加任何內容。 – PolaEla 2014-09-25 13:06:22

+0

您可以隨時將'Workbook_AfterSave(ByVal Success As Boolean)'更改爲'Workbook_SheetSelectionChange(ByVal Sh As Object,ByVal Target As Range)'。這將使您每次通過電子表格進行搜索時都會自行更新。但是如果數據量很大,它可能會減慢整個應用程序的速度。 – PolaEla 2014-09-25 13:10:05

相關問題