我有2個CSV文件orders_by_user_backlog和orders_by_user_pivot。我想用VBA創建一個名爲Orders by Users Report的.xlsx文件,其中包含兩張表。複製來自不同工作簿的數據並刷新數據透視表EXCEL VBA
稱爲積壓第一片,我只是將數據從orders_by_user_backlog.csv複製並粘貼在那裏。
稱爲支點。第二片,我會從orders_by_user_pivot.csv複製數據並粘貼那裏,刷新數據透視表在同一個表的新數據。
我使用的是.xlsx文件作爲模板名爲訂單用戶模板
這裏是我的代碼
Sub Orders_by_User_report()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'open the csv output from query orders by user backlog
Workbooks.Open FileName:="C:\Reports\orders_by_user_backlog.csv"
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:\Reports\Report templates\Orders By Users Template.xlsx"
Sheets(1).Select
Cells.Select
ActiveSheet.Paste
'Bold and color top row, add autofilter, zoom 80% and autofit
Range("A1:H1").Select
Selection.Interior.Color = 255
Selection.Font.Bold = True
Selection.AutoFilter
ActiveWindow.Zoom = 80
Cells.Select
Cells.EntireColumn.AutoFit
'open the csv output from query orders by user pivot
Workbooks.Open FileName:="C:\Reports\orders_by_user_pivot.csv"
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:\Reports\Report templates\Orders By Users Template.xlsx"
Sheets(2).Select
Cells.Select
ActiveSheet.Paste
'Bold and color top row, add autofilter, zoom 80% and autofit
Range("A1:D1").Select
Selection.Interior.Color = 255
Selection.Font.Bold = True
Selection.AutoFilter
ActiveWindow.Zoom = 80
Cells.Select
Cells.EntireColumn.AutoFit
'refresh pivot table
Sheets(2).Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
'save file as xlsx for the output
ActiveWorkbook.SaveAs FileName:= _
"C:\Reports\Orders by Users\Orders by Users Report " & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
ActiveWindow.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
我知道是我的問題,這是在「ActiveSheet」,但我沒有」不知道如何解決它。每次我使用
ActiveSheet.Paste
或
ActiveSheet.PivotTables( 「PivotTable1」)。PivotCache.Refresh
它讓我錯誤的第二ActiveSheet.Paste,當我評論這部分,並嘗試只有一個CSV文件它粘貼正常,但然後再次停止在ActiveSheet.PivotTables。
任何人都可以請教我如何改變我的代碼?非常感謝你。
嘗試'ActiveSheet.PivotTables( 「PivotTable1」)。RefreshTable' –
我以前嘗試過了,它不能正常工作。問題出在ActiveSheet中,因爲它從第二個ActiveSheet停止運行.Paste – JuniorDev
不要使用activesheet方法,它不是很好。定義你的牀單明確,即工作表(「工作表Sheet1」)。數據透視表(「PivotTable1」) – User632716