我有一个宏,每周更新一个数据透视表,将表扩展到新列。其他用户在我想要保留的数据透视表右侧的列中创建了注释。刷新桌面后,我会收到一条警告,其中已经有XXXX中的数据。你想替换它吗?"
有没有办法检测将表格指向新来源是否会引起警报并自动取消?我不能设置
Application.DisplayAlerts = False
因为这会忽略警告并覆盖注释。我尝试了以下操作,但警报中断阻止执行下一行。
Set pvtTbl = reconWB.Worksheets("PIVOT_ALL").PivotTables("PIVOT_ALL")
On Error Resume Next
pvtTbl.SourceData = rawData 'Updates pivot and causes the "There's already data..." alert if there are notes
SendKeys "{ESCAPE}" 'My attempt to close the alert window, but the alert interupt prevents further execution
'The following works, if I select "Cancel" and close the alert
Do While Err <> 0
reconWB.Worksheets("PIVOT_ALL").Columns(pvtTbl.DataBodyRange.Columns.Count + 2).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Err = 0
pvtTbl.SourceData = rawData
SendKeys "{ESCAPE}"
Loop
On Error GoTo 0
pvtTbl.RefreshTable
我讨厌搞乱错误处理,但我无法想到另一种方法。不是我尝试过的!谢谢你的期待!