[問題] VBA 樞紐分析表在迴圈中的問題

看板Office作者 (SKY)時間6年前 (2019/02/27 02:45), 6年前編輯推噓0(006)
留言6則, 1人參與, 6年前最新討論串1/1
軟體: Office 365 Excel 目前寫了一個巨集,流程大約如下: 我有八個事先寫好規則的工作表,與一個來源資料工作表, 巨集會根據八個含規則工作表內容對來源資料進行八次樞紐(樞紐包在迴圈內) 每次樞紐完會把樞紐工作表內的資料全部複製到新的結果工作表,並且把樞紐工作表刪除 (因為樞紐工作表只是用來計算) 我的想法是用這個方式一次產出八個最終的結果工作表 目前的進度是功能都已經寫完,也可以順利對來源資料表進行一次處理,也就是說 不用迴圈都沒問題,但是如果我用迴圈把整個流程包起來就會在樞紐的步驟卡住。 (把迴圈拿掉的話,手動跑八次不同規則的巨集不會有錯誤,但是放迴圈的話跑到第二輪 就會在樞紐處停住) 附上產生樞紐部分的程式: '會在下面Set PTCachc這行卡住 Set PTCache = ThisWorkbook.PivotCaches.Add _ (SourceType:=xlDatabase, _ SourceData:=Datasheet.Range(Cells(1, 1), Cells(workingRow, workingColumn))) Set PT = PTCache.CreatePivotTable _ (TableDestination:="", _ TableName:=ReportType) -- 錯誤訊息是: 執行階段錯誤'1004': 'Range'方法(_Worksheet'物件)失敗 錯誤訊息看起來不太像是樞紐的問題,但是程式都是停在上面貼的樞紐部分。 雖然我在每一次樞紐完都會把樞紐工作表刪除,不知道是否會是實際上樞紐資料其實 還存在背景裡,導致第二輪要使用樞紐時發生錯誤? 我因為這個猜想所以嘗試過使用PT.ClearTable將樞紐清空,但程式還是一樣停住。 因為巨集有點龐大,所以難以把整個貼上來,或許問題也不好找,真是不好意思, 各位先進如果覺得可能要往哪個方向查都請不吝賜教,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.35.227 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1551206739.A.229.html ※ 編輯: homelife (59.115.35.227), 02/27/2019 02:50:55 ※ 編輯: homelife (59.115.35.227), 02/27/2019 04:12:12

02/27 06:54, 6年前 , 1F
sourcedata部分改為range(datasheet.cells(1,1),datasheet
02/27 06:54, 1F

02/27 06:55, 6年前 , 2F
.cells(workingrow,workingcolumn))
02/27 06:55, 2F

02/27 07:20, 6年前 , 3F
或是set ptcache上方datasheet工作表select或activate
02/27 07:20, 3F

02/27 07:21, 6年前 , 4F
這樣sourcedata內就可省略datasheet.
02/27 07:21, 4F
您好,使用您一、二行推文的程式碼成功了! 請問原本的寫法是哪裡有問題呢,為什麼會造成第二次執行就停住? 謝謝~ ※ 編輯: homelife (59.115.35.227), 02/27/2019 17:59:39

02/27 18:34, 6年前 , 5F
原本的範圍寫法cells的部分指定的是作用工作表內的儲存格
02/27 18:34, 5F

02/27 18:34, 6年前 , 6F
,而非datasheet內的儲存格
02/27 18:34, 6F
謝謝,上了一課~我也許需要再做一些練習才能完全理解 ※ 編輯: homelife (59.115.46.162), 02/28/2019 14:28:30
文章代碼(AID): #1STObJ8f (Office)
文章代碼(AID): #1STObJ8f (Office)