У меня есть таблица со столбцом ввода, и я настроил две таблицы с допустимыми входными значениями. Правильная таблица зависит от значения в ячейке в конце каждой строки. Чтобы определить, какая таблица разрешена, я настроил формулу проверки данных (например, =if cellatendof row>0, table1, table2
). Я попытался перетащить проверку данных вниз, но она не использовала относительную ссылку на ячейку, которую должна была проверить. Поэтому я вручную перешел к каждой ячейке в столбце и обновил формулу проверки данных, чтобы проверить ячейку для этой конкретной строки (например, ... =if cellatendofrow1>0... then next =if cellatendofrow2>0
).
Это работает, но это не позволит никому добавлять или удалять строку — или даже сортировать данные — без отключения формулы проверки данных. Вместо указания на новое местоположение ячейки, она указывает на исходную строку, жестко закодированную. Таким образом, если строка добавляется, теперь строка 1 перемещается в строку 2, но формула все еще смотрит на , cellatendofrow1
потому что она была жестко закодирована таким образом, как и все остальные строки, и результаты, скорее всего, будут недействительными.
Есть ли способ сделать ссылку относительной, а не статической, и перемещать ее вместе с остальной частью строки?
Извините, я не знаю VB, но могу попробовать, если это поможет!
решение1
Если флаг таблицы установлен ColumnC
(всегда!), то, по-видимому, работает следующая формула (с использованием именованных диапазонов):