Я попытался решить эту проблему, но я не знаком с кодировкой.
Вот моя строка кода,
='[WorkBook]BOM'!G6
Я хочу сделать так, чтобы Workbook вызывал ячейку, чтобы я мог массово заменить все имена «Workbook» без поиска и замены.
По сути, что-то вроде этого (хотя этот код не работает, он просто для справки)
='[=E1]BOM'!G6
Затем в ячейке E1 я смогу ввести любой текст, который захочу, чтобы заменить имя Workbooks. Я пытаюсь найти Формулу, чтобы сделать это.
решение1
Эту функцию следует использовать INDIRECT()
для оценки текстовой строки как функции.
=INDIRECT("'["& E1 & "]BOM'!G6")
Обратите внимание, что INDIRECT()
функция вернет значение только в том случае, если указанная рабочая книга открыта. В противном случае она вернет ошибку #REF!
.
решение2
INDIRECT
не будет работать с закрытыми внешними рабочими книгами. Кажется, лучшим вариантом для автоматизации будет поместить путь к рабочей книге в ячейку и написать макрос, который найдет/заменит все вхождения старого имени рабочей книги и заменит на новое имя рабочей книги.
решение3
Мое решение позволит вам ссылаться на диапазон, только если вы сначала укажете его.
Например, вы называете диапазон A1:A100 MyRange в Workbook 1.
Затем в вашей текущей рабочей книге вы можете ввести «MyRange» в ячейку E1 рабочей книги 2.
затем используйте INDIRECT(E1)