作者homelife (SKY)
看板Office
标题[问题] VBA 枢纽分析表在回圈中的问题
时间Wed Feb 27 02:45:37 2019
软体: 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://webptt.com/cn.aspx?n=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
1F:→ soyoso: sourcedata部分改为range(datasheet.cells(1,1),datasheet 02/27 06:54
2F:→ soyoso: .cells(workingrow,workingcolumn)) 02/27 06:55
3F:→ soyoso: 或是set ptcache上方datasheet工作表select或activate 02/27 07:20
4F:→ soyoso: 这样sourcedata内就可省略datasheet. 02/27 07:21
您好,使用您一、二行推文的程式码成功了!
请问原本的写法是哪里有问题呢,为什麽会造成第二次执行就停住?
谢谢~
※ 编辑: homelife (59.115.35.227), 02/27/2019 17:59:39
5F:→ soyoso: 原本的范围写法cells的部分指定的是作用工作表内的储存格 02/27 18:34
6F:→ soyoso: ,而非datasheet内的储存格 02/27 18:34
谢谢,上了一课~我也许需要再做一些练习才能完全理解
※ 编辑: homelife (59.115.46.162), 02/28/2019 14:28:30