Последнее обновление от 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 to 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 сводными таблицами), чтобы он работал без этой ошибки?
Спасибо за любую помощь !!!