2015-04-07 2 views
0

В обширных файлах Excel (= около 40 листов) имеется множество опорных точек (из одного куба OLAP, поэтому одно соединение для всех опорных точек). Часто в одном листе есть несколько сводных таблиц.Признать, какие таблицы сводных таблиц Excel будут перекрываться после обновления

Всякий раз, когда произошли изменения в кубе OLAP, может потребоваться много времени, чтобы выяснить, из какого из них происходит перекрытие, и, следовательно, приведет к отмене обновления. Есть ли способ узнать, какая из многих сводных таблиц приводит к перекрытию при обновлении соединения?

Боковые условия: держа друг сводную таблицу в отдельном листе не вариант (для многих листов), преобразование данных в кубе функций ни.

+0

Я не считаю, что это возможно, если вы знаете что-то о структуре цапф заранее. То есть, Pivot, сгруппированный по месяцам, не может иметь более 12 столбцов. Наверное, перекрывающиеся, вероятно, не ограничены. Excel поощряет вас размещать сводные таблицы на своих собственных листах, чтобы не перекрывать друг друга. Сколько листов было бы? –

ответ

0

Вы можете определить диапазоны в VBA со следующим:

Activesheet.pivottables(1).databodyrange.address 

Вы также можете использовать функцию Intersect, чтобы определить, если два диапазона пересекаются.

http://www.globaliconnect.com/excel/index.php?option=com_content&view=article&id=154:referencing-an-excel-pivot-table-range-using-vba&catid=79&Itemid=475

Вам придется копать дальше, чтобы увидеть, если это возможно, чтобы переместить сводную таблицу с помощью VBA. Кроме того, вы можете использовать макрорекордер для воссоздания сводных таблиц «на лету» и расположить их на основе границ созданной на той же странице точки.

+0

Звучит здорово, спасибо! Я попробую :-) – ateich

0

Это решение включает в себя некоторые VBA, но может быть копирование/вставка:

https://exceleratorbi.com.au/find-overlapping-pivot-tables/

По сути, это предполагает «ведение журнала» каждую регенерацию шарнира **. Когда ваш опорный пункт не будет выполнен, запись не будет зарегистрирована. Позволяет вам определить неудачную таблицу.

** Вам нужно будет получить список/порядок цапф от успешного запуска первого

Альтернативно

Вы можете получить список всех таблиц, и их листы, а затем сделать догадаться, что перекрывается:

https://excelreality.blogspot.nl/2014/08/finding-source-pivot-table-cannot.html

Альтернативно

Следующий ответ подходит моя потребность в незначительной корректировки (снято обновление из-за ошибки памяти), а затем прочитать последнюю таблицу перед ошибкой: https://superuser.com/questions/703847/how-do-i-find-which-pivot-tables-has-an-error-in-excel-2010

как

Sub ref() 

Dim Sheet As Worksheet, Pivot As PivotTable, result As Boolean 
For Each Sheet In ThisWorkbook.Worksheets 
    For Each Pivot In Sheet.PivotTables 
     Debug.Print Sheet.name & "-->" & Pivot.name 
     Pivot.RefreshTable 
    Next 
Next 

End Sub 

Просмотр выход в немедленным окно:

Where does VBA Debug.Print log to?

Смежные вопросы