Последнее обновление 14 октября 2011 г. - Теперь я знаю больше информации, поэтому я резюмирую все здесь и удаляю все свои предыдущие описания / вопросы.
Проблема в том, что после запуска определенной программы я получаю странную ошибку. Это похоже, но не совсем так, когда я нажимаю «Разделить». Разница в том, что сплошные серые полосы не отображаются. Это как-то странно. Совсем недавно я начал думать, что это, вероятно, вызвано списком полей задействованных сводных таблиц.
Проблема возникает с любым из трех следующих фрагментов кода
Код 1
Dim pvtCache As PivotCache
For Each pvtCache In ThisWorkbook.PivotCaches
pvtCache.Refresh
Next pvtCache
Код 2
ThisWorkbook.RefreshAll
Код 3
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
Но не с этим, единственная разница в том, что я добавил ws.Activate в Code 3.
Код 4
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
ws.Activate
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
Итак, мой вопрос: можно ли это объяснить? Может ли кто-нибудь исправить Код 1 (который намного быстрее в электронной таблице с 2 сводными кешами из больших источников данных, но 46 сводными таблицами), чтобы он работал без этой ошибки?
Спасибо за любую помощь !!!
screenupdating
, установленный в false) и посмотреть где (при установке точек останова в несколько строк вашего кода) появляются расколы. Это, вероятно, поможет вам сосредоточиться на неправильных линиях - person JMax   schedule 14.09.2011