閱: 2058 | 回: 6
等級:學有小成-
積分:30 -
財富值:2 -
身份:普通用戶
還是寫VBA吧,100個表格文件都放在同一個文件夾,然后遍歷文件夾每一個表格文件的每一個sheet,并獲取活動sheet的名稱,然后對應于每一個sheet,獲取相應列的銷售金額總數(shù),存儲在數(shù)組里,最后遍歷完了,再將數(shù)組數(shù)據(jù)寫在新表格里就行,前提是這100多個數(shù)據(jù)都在相同位置,如果不在,還得寫循環(huán)進行數(shù)據(jù)查找。
數(shù)據(jù)不要讀一個就寫一個到新表格,盡量用數(shù)組,否則速度很低。
我的個性簽名
等級:學有小成-
積分:23 -
財富值:2 -
身份:普通用戶
要批量統(tǒng)計多個工作簿中的銷售金額并輸出到一個新的表格中,可以使用VBA宏來實現(xiàn)。以下是一個示例的VBA代碼,可以幫助你完成這個任務:
1. 打開一個新的Excel工作簿,按下Alt + F11打開VBA編輯器。
2. 在VBA編輯器中,插入一個新的模塊。右鍵點擊項目資源管理器中的"VBAProject",選擇"插入",然后選擇"模塊"。
3. 在新的模塊中,復制粘貼以下VBA代碼:
```vba
Sub 統(tǒng)計銷售金額()
Dim FolderPath As String
Dim FileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim TotalSales As Double
Dim OutputRow As Long
' 設置文件夾路徑
FolderPath = "你的文件夾路徑"
' 設置輸出表格的起始行數(shù)
OutputRow = 2
' 打開一個新的工作簿作為輸出表格
Set wb = Workbooks.Add
Set ws = wb.Sheets(1)
' 遍歷文件夾中的每個工作簿
FileName = Dir(FolderPath & "\*.xlsx") ' 可以根據(jù)需要修改文件類型
Do While FileName <> ""
' 打開工作簿
Set wb = Workbooks.Open(FolderPath & "\" & FileName)
' 獲取銷售金額列的合計數(shù)
TotalSales = Application.WorksheetFunction.Sum(wb.Sheets(1).Range("A:A")) ' 假設銷售金額列在A列
' 將工作簿名稱和銷售金額合計數(shù)寫入輸出表格
ws.Cells(OutputRow, 1).Value = FileName
ws.Cells(OutputRow, 2).Value = TotalSales
' 關閉工作簿
wb.Close SaveChanges:=False
' 移動到下一行
OutputRow = OutputRow + 1
' 獲取下一個文件名
FileName = Dir
Loop
' 調整輸出表格的列寬
ws.Columns("A:B").AutoFit
End Sub
```
4. 在代碼中的`FolderPath = "你的文件夾路徑"`處,將路徑修改為包含這些工作簿的文件夾的實際路徑。
5. 運行宏。按下F5或點擊VBA編輯器工具欄上的運行按鈕。
這個宏將按照指定的文件夾路徑,遍歷文件夾中的所有工作簿,并統(tǒng)計每個工作簿中銷售金額列的合計數(shù)。然后,將工作簿名稱和銷售金額合計數(shù)輸出到新的工作簿的第一個工作表中。
請注意,這個示例假設銷售金額列在每個工作簿的A列。如果銷售金額列在其他列,你需要相應地修改代碼中的`Range("A:A")`為相應的列范圍。另外,你還可以根據(jù)需要進行其他的自定義修改,如輸出表格的格式等。
1. 打開一個新的Excel工作簿,按下Alt + F11打開VBA編輯器。
2. 在VBA編輯器中,插入一個新的模塊。右鍵點擊項目資源管理器中的"VBAProject",選擇"插入",然后選擇"模塊"。
3. 在新的模塊中,復制粘貼以下VBA代碼:
```vba
Sub 統(tǒng)計銷售金額()
Dim FolderPath As String
Dim FileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim TotalSales As Double
Dim OutputRow As Long
' 設置文件夾路徑
FolderPath = "你的文件夾路徑"
' 設置輸出表格的起始行數(shù)
OutputRow = 2
' 打開一個新的工作簿作為輸出表格
Set wb = Workbooks.Add
Set ws = wb.Sheets(1)
' 遍歷文件夾中的每個工作簿
FileName = Dir(FolderPath & "\*.xlsx") ' 可以根據(jù)需要修改文件類型
Do While FileName <> ""
' 打開工作簿
Set wb = Workbooks.Open(FolderPath & "\" & FileName)
' 獲取銷售金額列的合計數(shù)
TotalSales = Application.WorksheetFunction.Sum(wb.Sheets(1).Range("A:A")) ' 假設銷售金額列在A列
' 將工作簿名稱和銷售金額合計數(shù)寫入輸出表格
ws.Cells(OutputRow, 1).Value = FileName
ws.Cells(OutputRow, 2).Value = TotalSales
' 關閉工作簿
wb.Close SaveChanges:=False
' 移動到下一行
OutputRow = OutputRow + 1
' 獲取下一個文件名
FileName = Dir
Loop
' 調整輸出表格的列寬
ws.Columns("A:B").AutoFit
End Sub
```
4. 在代碼中的`FolderPath = "你的文件夾路徑"`處,將路徑修改為包含這些工作簿的文件夾的實際路徑。
5. 運行宏。按下F5或點擊VBA編輯器工具欄上的運行按鈕。
這個宏將按照指定的文件夾路徑,遍歷文件夾中的所有工作簿,并統(tǒng)計每個工作簿中銷售金額列的合計數(shù)。然后,將工作簿名稱和銷售金額合計數(shù)輸出到新的工作簿的第一個工作表中。
請注意,這個示例假設銷售金額列在每個工作簿的A列。如果銷售金額列在其他列,你需要相應地修改代碼中的`Range("A:A")`為相應的列范圍。另外,你還可以根據(jù)需要進行其他的自定義修改,如輸出表格的格式等。
敬天愛人,成人達已
等級:傳說級人物