Доброго всем времени суток!Итак, есть файл ( назовем его "Шаблон пустой" ) с диапазоном, форматированным как таблица ( пусть её имя будет "Таблица" ) и сводная таблица, сформированная на базе диапазона "Таблица". Всё в одном файле. Переходим в Анализ - Источник данных - Источник данных, указан путь: "Таблица". Всё верно.
Копируем файл "Шаблон пустой" в другую папку, переименовываем в "Шаблон заполненный", заполняем "Таблицу" данными, переходим в сводную, а там... в качестве исходных данных для сводной указан уже не диапазон "Таблица" в текущем файле, а путь к оригинальному файлу "Шаблон пустой" в виде '\Users\...\Шаблон пустой.xlsx'!таблица Т.е. надо каждый раз, когда будет происходить операция копирования шаблона и его заполнение, вдобавок указывать путь к новому диапазону в новом файле. Я понимаю, в чем логика Excel, но все же как ему объянить, что мне нужен относительный путь (относительно текущего рабочего файла) к исходным данным для сводной, а не жестко закрепленный абсолютный.
a1pha, могу предложить записать макрорекордером и доработать. Открываете копию шаблона с проблемной связью, включаете запись, меняете связь с источником, останавливаете запись, смотрите макрос и дорабатываете, а что не понятно - спрашиваете. Да, и без файла-примера мне трудно с конкретикой. Я ж не спец. по ВБА, а учащийся по форуму.
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
повторить в 2010 не удалось. Похоже, это проблема именно 2013 - вот здесь обсуждение. Там говорят, что более-менее работающий момент - это делать копии через Save As.
Цитата
еще оттуда: I have actually figured out that the problem is not there if I use the data model when creating the pivot table (flagging Add this data to the data model when creating the pivot table). In that case I can move the file around and rename it without Excel changing references from pointing to internal data to absolute path of a file (that in case of a rename, does no longer exists).
As a workaround, I tick the option 'prefer the Excel Data Model..' to get rid of this issue.When I create a pivot table, excel create a data model and then when I copy it to another folder, it would not change my data source path. File->options->advanced->find the Data group, check the option 'prefer Excel Data Model....'
For these workbooks which have already created the pivot table, you can use 'save as' to save it to another folder, I've tested it, the path wouldn't become to absolute.
Да, а в макросе, если таковой писать, можно использовать разные методы
Код
' вариант 1
ActiveSheet.PivotTables("СводнаяТаблица1").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Таблица1")
' вариант 2 - задаем абсолютный путь
ActiveSheet.PivotTables("СводнаяТаблица1").SourceData = "C:\XLS\[1222 - копия.xlsx]Лист1!R1C1:R5C2"
' вариант 3 - тем же способом путь относительный
ActiveSheet.PivotTables("СводнаяТаблица1").SourceData = "Таблица1"
причем какой именно сейчас путь - можно и не интересоваться