Я играю с этим маленьким фрагментом кода.Как создать сводную таблицу и назвать ее с помощью VBA?
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Personnel&Facilities Detail!R3C1:R105279C21", Version:=xlPivotTableVersion14 _
).CreatePivotTable TableDestination:="Corporate Communications!R1C1", _
TableName:="PivotTable9", DefaultVersion:=xlPivotTableVersion14
Я пытаюсь Переберите диапазон ячеек и создавать кучу шарниров на основе некоторых наборы данных, которые у меня есть. У меня нормально работает цикл, и я записал макрос, который должен делать то, что я хочу. То, что я не могу понять, - это соглашение об именах сводных таблиц. Кажется, он увеличивается на 1 каждый раз, когда я включаю Macro Recorder и просматриваю последовательность событий. Я уверен, что проблема здесь:
TableName: = «PivotTable9»
Я пытался очистить кэш из сводных таблиц, чтобы сбросить имя таблицы, но это не сработало.
Любая идея, что здесь не так?
Похоже, вы создаете несколько сводных таблиц на основе одного и того же ключевого кеша. Проблема для меня выглядит так, будто вы пытаетесь создать каждую сводную таблицу поверх ранее созданной таблицы на том же листе в той же ячейке. Попробуйте переместить 'TableDestination' с каждой итерацией цикла (возможно, самым простым является новый рабочий лист для каждого PT). Excel автоматически увеличит ваши имена сводной таблицы, если ваше 'TableName' уже существует. Таким образом, вы также должны создать уникальное имя для каждого PT на каждой итерации вашего цикла. – PeterT
Возможно, это было то, что вы сказали. Можете ли вы опубликовать несколько примеров кода? Я пробовал кучу вещей, и ничто не работает для меня. Я могу сделать это на другой машине, используя Excel 2003. Я не знаю, почему Excel 2010 не может ее обработать. – ryguy7272