Подключение к данным таблицы 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]! Даты