Дальнейшее экспериментирование, вызванное очень полезным ответом tpkaplan, позволило мне лучше найти проблему. Вот мои выводы.
Точный случай, который я описывал в вопросе, действительно работает большую часть времени совершенно правильно (у меня это не получилось, но так и не удалось понять, почему).
Однако случай, который, как я думал, я тестировал, не соответствует действительности.
Фактически, вы должны быть очень конкретными в отношении так называемого «Именованного диапазона». Там может быть четыре различных элементов, которые обрабатываются по-разному Excel:
- Название является ссылкой на ячейку
- имя является ссылкой на постоянной
- имя является ссылкой на таблицу ячейки
- Это ссылка на любую из вышеупомянутых категорий, но по формуле.
Учитывая эти четыре категории, есть 3 способа получить #REF
ошибку:
- Неправильное имя листа (как было упомянуто tpkaplan);
- Название диапазона не существует (очевидно);
- Название относится к чему-либо еще, кроме ячейки или диапазона ячеек (мой фактический случай был формулой).
отметить также, что, если имя относится к клетке, заданной с помощью относительного позиционирования (например, название относится к ='Sheet1'!$A5
, так что линия изменяется в зависимости от клетки вы звоните имя из), когда вызывается из другой лист, он будет вести себя так, как если бы он был вызван из ячейки A1
указанного листа.
Таким образом, путь, чтобы обойти проблему, состоял в том, чтобы иметь имя, отображающее значение, которое оно производит где-то, и иметь другое имя, которое ссылается на эту конкретную ячейку, которая теперь содержит информацию, которую вы пытаетесь получить. Затем обратитесь к этому второму имени.
Кажется, что существует более чем один способ получить эту ошибку #REF. На самом деле большинство полезных случаев вернет эту ошибку. Я развиваю это больше в своем ответе. В любом случае, спасибо, что позволил мне понять, что там происходит. –