#excel #vba #ref
#excel #vba #ссылка
Вопрос:
Я пытаюсь динамически ссылаться на ячейку на другом открытом и видимом листе в той же книге, используя КОСВЕННУЮ функцию. Когда я делаю ссылку на ячейку со статическим значением, она работает нормально, но не работает, если ссылка не является статической. В приведенном ниже фрагменте кода $ A $ 31 — это имя листа, F9 — ссылка на ячейку для этого листа. Это работает нормально. Однако это F9, который должен быть динамическим, например, G9, H9 и F10, F11.
=INDIRECT("'" amp; $A$31 amp; "'!F9")
Я бы подумал, что следующий фрагмент должен был внести изменения. Однако это приводит только к ошибке #REF
=INDIRECT("'" amp; $A$31 amp; "'!" amp; F9)
Какие изменения мне нужно внести и почему я получаю ошибку?
Комментарии:
1. сначала запишите ту же формулу внутри indirect в другую ячейку и посмотрите, получите ли вы действительный адрес или нет. Нравится
="'" amp; $A$31 amp; "'!" amp; F9
2. Удаление КОСВЕННОГО я в конечном итоге получаю объединенную строку имени листа из $ A $ 31 и любое значение в F9 в текущем активном листе
3.
=INDIRECT("'" amp; $A$31 amp; "'!" amp; F9)
это должно сработать. Проверьте и дважды проверьте имя вашего листа и ссылочную ячейку.4. Ваша последняя попытка отлично работает для меня. Я получаю ошибку #REF, если лист в A31 не существует. Однако рассмотрите возможность использования КОСВЕННОГО (АДРЕСНОГО)).
5. Как я уже сказал, первая версия работает нормально. Но изоляция F9, как во втором случае, этого не делает. Имя ссылки на лист явно работает. Это варианты, которые я пробовал в их собственной ячейке одновременно, с последующими буквальными результатами 1) =INDIRECT(«‘» amp; $ A $ 31 amp; «‘!F9») = 2, работает нормально 2) =INDIRECT(«‘» amp; $ A $ 31 amp; «‘!» amp; F9) = #ССЫЛКА! 3) = ОБЪЕДИНИТЬ («‘», $ A $ 31, «‘!», F9) = ‘Sheet1’!y, не нормально (y находится в этой ячейке) 4) = КОСВЕННЫЙ (ОБЪЕДИНИТЬ («‘» amp; $ A $ 31 amp; «‘!», F9)) = #ССЫЛКА! 5) =»‘» amp; $ A $31 amp; «‘!F9» = ‘Лист1’!F9
Ответ №1:
Я нашел ответ. Я уверен, как работает код, но разберусь с этим позже. Часть ссылки на динамическую ячейку необходимо изменить с: amp; F9 на: amp; CELL(«адрес», F9). «адрес», похоже, является ключевой фразой
=INDIRECT("'" amp; $A$31 amp; "'!" amp; CELL("address",F9))