Поэтому я обычно не пишу на таких сайтах, но использую их довольно часто. Большое спасибо, если я зашел сюда только для того, чтобы улучшить свое обучение. Однако сегодня я очень расстроен. Вот моя задача: я вкладываю формулу гиперссылки в оператор if в цифровой журнал, который я создал, основываясь на том, является ли их информация уже введенной в журнал. Если они есть, ссылка на следующую строку ввода данных; если их нет, ссылка на первый ряд. Однако я успешно создал формулу, используя несколько ссылок, но не могу заставить ее работать, если формула основана на уникальном номере, помещенном в другую ячейку (являясь именем динамического листа, которого я хочу получить). Число представляет собой число в пустом контейнере, и листы названы с указанным номером. Мне нужно использовать одну формулу гиперссылки вместо сотен, чтобы моя программа имела устойчивый, динамический интерфейс, который не требует, чтобы я обновлял ее каждый раз, когда наша организация добавляет больше ресурсов.

Это пример формулы, которая работает:

=IF('1016'!$J$7="", HYPERLINK("#'1016'!$J$7",""), HYPERLINK("#INDEX('1016'!$j$7:$j$56,MATCH(999999,'1016'!$j$7:$j$56,1)+1)",""))

Это то, что дает мне больше седых волос, когда я говорю:

=IF('"&X2&"'!$J$7="", HYPERLINK("#'"&X2&"'!$J$7",""), HYPERLINK("#INDEX('"&X2&"'!$j$7:$j$56,MATCH(999999,'"&X2&"'!$j$7:$j$56,1)+1)",""))

Таким образом, часть формулы & X2 & ... - это, в основном, номер бина, который пользователь может ввести в одну ячейку, и формула будет ссылаться на журнал для этого бина. На самом деле это картинка, которую я вставил в фон листов, чтобы она выглядела как ссылка, по которой я нажимаю, таким образом, мое "" пустое понятное имя.

Что расстраивает, так это то, что оба моих условия гиперссылки прекрасно работают сами по себе, но когда я подключаю один и тот же точный синтаксис к логической части функции if, ссылка на лист не будет работать, если журнал ввода данных пуст. Я полагаю, что у меня есть гиперссылка на ложную часть моего утверждения if, но, независимо от того, что я пытаюсь, я не могу заставить истинную часть своего утверждения if работать. Я получаю сообщение о том, что ссылка в основном недействительна, ошибка #REF или #VALUE. Я переместил свои хэши, свои кавычки, попробовал объединенные функции вместо вышеупомянутого синтаксиса, выпил больше, сделал перерывы, вы называете это, кажется, ничего не работает. Я серьезно разозлился в этот момент. Пожалуйста, помогите мне, если можете. Я знаю, что это должно быть просто исправить. Еще раз спасибо Если мне нужно опубликовать свой лист, я просто не буду знать, как это сделать на данный момент. Кстати, я без конца искал в Интернете ответ, и похоже, что я единственный на нашей планете, пытающийся это сделать, и наша организация не одобряет какой-либо код, поэтому, пожалуйста, не используйте VBA. Спасибо

1 ответ1

0

В вашем первом примере '1016'!$J$7="" проверяет, является ли значение ячейки J7 на листе 1016 пустым.

Во втором примере, '"&X2&"'!$J$7="" проверяет, является ли значение ячейки J7 на листе & X2 & пустым, что завершится ошибкой, если не удастся найти лист с именем & X2 &.

Операция «&» объединяет строки, а не ссылки на ячейки, поэтому для правильного построения ссылки вы должны рассматривать ее как строку и соответствующим образом сортировать кавычки и конкатенацию: "'" & X2 &"'!$J7" . Однако тогда вы просто будете проверять значение одной строки против другой. Чтобы преобразовать строку в ссылку на ячейку, вам нужно использовать INDIRECT() . Примерно так должно работать:

=IF( INDIRECT("'" & X2 & "'!$J$7",TRUE), true hyperlink, false hyperlink)

Параметр TRUE требуется, чтобы сообщить INDIRECT, что строка использует стиль ячейки A1, а не ссылку по умолчанию R1C1.

Вам также необходимо исправить ваши динамические гиперссылки (возможно, путем объединения строки "#" в начале вашей формулы).

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