- 帖子
- 3
- 主題
- 2
- 精華
- 0
- 積分
- 6
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- office 2013
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2015-11-26
- 最後登錄
- 2016-4-21
|
本帖最後由 joime 於 2015-11-26 15:22 編輯
抱歉我重新表達我的問題,主要因為樞紐分析表要拉的欄位很多,因此想說能否透過複製的方式,
A工作簿已經有樞紐分析表與舊的資料來源,B工作簿有新的資料來源,
因此想將A工作簿的樞紐分析表sheet複製到B工作簿內,並修改資料來源為B工作簿的新資料來源
檔案部分由於公司有鎖著外網,無法傳檔
完整程式碼如下:
Dim newDatapath As String
Dim newDatawo As Workbook, vbawo As Workbook
Application.ScreenUpdating = False
newDatapath = "\Desktop\" & Format(Date, "yyyymm") & "\" & Format(Date, "yyyymmdd") & "WIP.xlsx"
If Dir(newDatapath, vbDirectory) = "" Then
MsgBox "請確認newData檔案是否已經產生"
Else
Set newDatawo = Workbooks.Open(path)
Set vbawo = ThisWorkbook
'複製樞紐分析表
vbawo.Sheets("Analysis Table").Copy after:=newDatawo.Sheets(newDatawo.Sheets.Count)
'變更資料來源
newDatawo.Sheets("Analysis Table").PivotTables("WIP").ChangePivotCache _
newDatawo.PivotCaches.create(xlDatabase, wo.Sheets("TotalWIP").UsedRange.Address, xlPivotTableVersion15)
'重新整理
newDatawo.RefreshAll
'關閉檔案並儲存
newDatawo.Close (True)
End If
Set newDatawo = Nothing
Set vbawo = Nothing
Application.ScreenUpdating = True
執行結果有成功樞紐分析表到B表中,但是展開樞紐分析表的資料時,則會跳出需重新整理等提示,
需手動執行重新整理 |
|