Подключение к данным таблицы Excel удаляет ссылку на ячейку при обновлении

У меня есть Data Connection в моей книге Excel (2007), которая ссылается на таблицу в другой книге Excel. У меня есть ячейка, которая ссылается на значение даты в заголовке последнего столбца таблицы. Каждый раз, когда внешняя рабочая книга обновляется и значение этой даты изменяется, ссылка на ячейку в моей рабочей книге нарушается, и ячейка показывает #REF!

В случае, если это помогает, я использую запрос к базе данных.

Строка подключения: {Замененный путь и имя книги}

DBQ=PATH\WORKBOOKNAME.xlsx;DefaultDir=PATH;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=1046;FIL=excel 12.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;

Текст команды: {Замененный путь}

SELECT * FROM `PATH\WORKBOOKNAME.xlsx`.`Main$` `Main$` ORDER BY `Main$`.IP

Вот как выглядит значение ячейки в столбце H перед обновлением:

Вот как выглядит значение ячейки в столбце H после обновления:

Последний заголовок столбца этой таблицы содержит значение даты, которое будет меняться при каждом обновлении исходной рабочей книги (изменяемая дата в исходной рабочей книге). Технически это поле даты не является частью другой таблицы книги. Однако подключение для передачи данных по-прежнему вытягивает его и включает в таблицу на главном рабочем листе. Я не смог бы изменить другую таблицу и формат рабочей книги, не изменив некоторые другие вещи из-за других зависимостей. Я не уверен ни в каком другом способе действительно ссылаться на динамический заголовок таблицы или правильно ссылаться на эту ячейку, чтобы ссылка не была нарушена...

Я хотел бы сделать это в формуле ячейки без использования макроса, если это вообще возможно.

Любая помощь с благодарностью. Благодарю вас.

2 ответа

Решение

Я думаю, что решение было так же просто, как с помощью Indirect...

=INDIRECT("G1")

Заголовок таблицы не должен изменяться, если вы считаете, что он используется в качестве имени поля базы данных. Я могу подумать об обходном пути, так как вы прямо даете имя диапазона столбцу даты в исходной книге, например, "Даты". Затем в вашей другой книге просто сделайте так, чтобы ячейки указывали на этот диапазон в исходной книге, т.е. сделать ячейки =[sourcebookname.xlsx]! Даты

Другие вопросы по тегам