註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 樞紐分析表更新資料來源與重新整理問題
返回列表
下一主題
上一主題
發帖
[發問]
樞紐分析表更新資料來源與重新整理問題
joime
發短消息
加為好友
joime
當前離線
UID
22783
帖子
3
主題
2
精華
0
積分
6
金錢
6
點名
0
作業系統
Windows 7
軟體版本
office 2013
閱讀權限
10
性別
男
在線時間
1 小時
註冊時間
2015-11-26
最後登錄
2016-4-21
小學生
帖子
3
主題
2
精華
0
積分
6
點名
0
作業系統
Windows 7
軟體版本
office 2013
閱讀權限
10
性別
男
註冊時間
2015-11-26
最後登錄
2016-4-21
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
發表於 2015-11-26 13:13
|
只看該作者
[發問]
樞紐分析表更新資料來源與重新整理問題
因為每天所看到的報表內容都一樣,只有來源資料會變動,所以想說透過
複製
樞紐分析
表的方式進行
相關程式碼如下:
Workbooks.Sheets("Analysis Table").PivotTables("WIP").ChangePivotCache _
Workbooks.PivotCaches.create(xlDatabase, wo.Sheets("TotalWIP").UsedRange.Address)
Workbooks.RefreshAll
Workbooks.Close (True)
PivotCache.Refresh
RefreshTable
RefreshAll
這三種方式都嘗試過了,也設定過檔案開起重新整理的方式,但是開啟檔案後,要展開樞紐分析表的資料時則會顯示
"儲存的樞紐分析表沒有資料。請用[更新資料]命令來更新樞紐分析表。" 警告畫面
手動執行重新整理後就會正常了。
想請問還有哪種方式可以避免此狀況。
收藏
分享
stillfish00
發短消息
加為好友
stillfish00
當前離線
UID
9276
帖子
1018
主題
15
精華
0
積分
1058
金錢
1058
點名
0
作業系統
win7 32bit
軟體版本
Office 2016 64-bit
閱讀權限
50
性別
男
來自
桃園
在線時間
1141 小時
註冊時間
2012-5-9
最後登錄
2022-9-28
大學生
帖子
1018
主題
15
精華
0
積分
1058
點名
0
作業系統
win7 32bit
軟體版本
Office 2016 64-bit
閱讀權限
50
性別
男
來自
桃園
註冊時間
2012-5-9
最後登錄
2022-9-28
2
#
發表於 2015-11-26 13:48
|
只看該作者
回復
1#
joime
Workbooks 是集合,沒有Workbooks.Sheets 這種寫法。
透過複製樞紐分析表??
最好附上檔案看看。
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。
TOP
joime
發短消息
加為好友
joime
當前離線
UID
22783
帖子
3
主題
2
精華
0
積分
6
金錢
6
點名
0
作業系統
Windows 7
軟體版本
office 2013
閱讀權限
10
性別
男
在線時間
1 小時
註冊時間
2015-11-26
最後登錄
2016-4-21
小學生
帖子
3
主題
2
精華
0
積分
6
點名
0
作業系統
Windows 7
軟體版本
office 2013
閱讀權限
10
性別
男
註冊時間
2015-11-26
最後登錄
2016-4-21
3
#
發表於 2015-11-26 15:20
|
只看該作者
本帖最後由 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表中,但是展開樞紐分析表的資料時,則會跳出需重新整理等提示,
需手動執行重新整理
TOP
靜思自在 :
人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表
下一主題
上一主題
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲