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

Вот моя строка кода,

='[WorkBook]BOM'!G6

То, что я хочу сделать - это вызвать Workbook к ячейке, чтобы я мог массово заменить все имена «Workbook» без Find and Replace.

По сути, что-то вроде этого (хотя этот код не работает, это просто для справки)

='[=E1]BOM'!G6

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

3 ответа3

0

Вы должны использовать функцию INDIRECT() для оценки текстовой строки как функции.

=INDIRECT("'["& E1 & "]BOM'!G6")

Обратите внимание, что функция INDIRECT() будет возвращать значение только в том случае, если ссылка на рабочую книгу открыта. В противном случае он вернет #REF! -ошибка.

0

INDIRECT не будет работать с закрытыми внешними книгами. Лучше всего делать ставку в области автоматизации на то, чтобы поместить путь к книге в ячейку и написать макрос, который найдет / заменит все вхождения старого имени книги и заменит его новым именем книги.

0

Мое решение позволит вам ссылаться на диапазон, только если вы сначала назовете их.

Например, вы называете диапазон A1:A100 MyRange в Рабочей книге 1

Затем в текущей рабочей книге вы можете ввести "MyRange" в E1 в рабочей книге 2

затем используйте INDIRECT(E1)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .