1

РЕДАКТИРОВАТЬ № 2

* Хорошо, мои предыдущие формулировки моей проблемы были, как указывалось выше, довольно мусором. Это редактирование перефразирует вопрос в более простой форме, обобщает контекст и предоставляет примеры данных.

ПРИМЕР ДАННЫХ

Col 1   Col 2 RESET? UNIQUE VALUES
A       A     yes    A
C       C            B
D       D            C
A       A            D
B       B
A       A
D       D
C       C

Обратите внимание, что для того, чтобы повторить мою проблему, необходимо использовать инструмент проверки списка, чтобы создать раскрывающийся список для каждой ячейки в столбце 2, где элементами списка являются A, B, C, D. Примечание. Только столбец 1 и столбец 2 (+ выпадающие списки) являются частью проблемы.

СБРОС? клетка - это часть потенциального решения / как бы я хотел, чтобы решение выглядело идеально.

Столбец уникальных значений, просто для удобства при создании выпадающих списков. (См. Формулу в разделе попыток.)

ОПИСАНИЕ

У меня есть две колонки, Кол 1 и Кол 2. Как видно из приведенного выше примера, оба изначально идентичны. Однако каждая ячейка в столбце 2 имеет раскрывающийся список, представляющий собой список уникальных значений в столбце 1.

Пока все просто. Проблема в том, что мои столбцы на самом деле намного длиннее, чем мой образец, поэтому, поиграв с Col 2, я могу захотеть восстановить / сбросить его до его начальных значений (т.е. вернуть его к его начальным значениям, равным Col 1),

ВОПРОС

Мне нужна кнопка, которая "сбрасывает" столбец, содержащий раскрывающиеся списки, чтобы его значения совпадали со значениями в другом столбце.

КОНТЕКСТ

В моем приложении Col 1 для справки, в то время как Col 2 представляет собой контрфактуальный столбец, в котором пользователь может изменить значение на любое из четырех возможных значений (опять же, A, B, C или D в этом примере), чтобы увидеть, какой эффект это имеет на других столбцах.

После игры с Col 2, пользователь захочет сбросить Col 2 к значениям по умолчанию, которые содержатся в Col 1. Другими словами, значение Col 2 по умолчанию является условным для Col 1.

СЛОЖНОСТИ И ПОПЫТКИ

Кажется, основная трудность заключается в попытке применить формулу и выпадающий список к одной ячейке.

Я пытался использовать формулу IF в ячейке, но это удаляет выпадающий список

Я также попытался использовать следующую формулу в поле настройки source проверки списка

Формула на ячейке B2 *:

=IF(C2="yes",A2,D2:D5)

* где столбцы имеют интуитивное соответствие приведенным выше образцам данных; то есть Col 1 такой же, как столбец A; Колонка D - УНИКАЛЬНЫЕ ЦЕННОСТИ).

Но это просто ограничивает возможность, доступную в списке. Если бы я мог получить это значение для заполнения ячейки без ручного нажатия, то это было бы идеальным решением. (В моем первом редактировании ниже я использовал функцию INDEX, чтобы попытаться добиться этого, но это не сработало.)

Я не пробовал никаких подходов к VBA, так как я не знаком с языком, но я готов попробовать, если он окажется плодотворным.

ЗАМЕЧАНИЯ И ОШИБКИ

Пожалуйста, прости, если я злоупотребил терминологией с точки зрения выпадающих списков против проверки списка. Надеюсь, они взаимозаменяемы.


ОРИГИНАЛЬНЫЙ ВОПРОС

У меня есть две колонки, X_1 и X_2. Представьте, что у X_1 есть значения, которые я наблюдаю в реальности, - содержащие, скажем, четыре уникальных значения, а не N наблюдений. X_2 - это фактическая переменная, которая означает, что я могу позволить пользователю изменить X_2 на любое из четырех значений X_1 через выпадающий список. Это имеет последующие последствия с точки зрения функции, которую я использую для предсказания некоторого Y.

Проблема в том, что N - очень большое число, поэтому для ручного сброса X_2 потребуется слишком много времени.

Затем я ищу кнопку, которая может сбросить список в X_2 в соответствии с соответствующим значением в X_1.

РЕДАКТИРОВАТЬ:

Как показано на снимке экрана, когда ячейка сброса (т.е. D2) == "да", формула ниже ограничивает раскрывающийся список только одним значением; то, что соответствует X_1; в противном случае он имеет все четыре уникальных значения X_1, которые содержатся в списке в G2:G5.

Это почти то, что я хочу, но проблема в том, что пользователь все еще должен выбрать ограниченное значение. В настоящее время я ищу способ заполнить ячейку первым значением lis (отсюда и функцией INDEX), но пока мне это не удалось.

Формула:

=IF($D$2="yes";INDEX($A$2;1);$G$2:$G$5)

Список в выбранной ячейке содержит только "A", потому что RESET установлен на "да"; в противном случае список будет содержать A, B, C, D. Проблема в том, что "А" не заполняется автоматически.

1 ответ1

0

Решение, как оказалось, было довольно простым.

Private Sub CommandButton1_Click()
Range("B:B").Value = Range("A:A").Value
End Sub

Где A и B соответствуют X_1 и X_2 в вопросе респираторно. "Кнопка" СБРОСА, которую я включил, может быть обработана с помощью CommandButton, о которой я не знал, что она существует.

Чтобы быть ясным о том, что это делает:

  • B - это колонка с выпадающими списками, которую я могу поиграть с B, насколько мне нравится
  • Когда я закончу, я могу нажать свою кнопку и привет! Все значения B возвращаются к значениям по умолчанию, что равно A.

Мой вопрос был явно слишком сложным для такой простой задачи, но, если честно, я был сильно застигнут врасплох тем, что функциональность CommandButton по умолчанию именно то, что мне нужно (в частности, что он не удаляет / удаляет) мои выпадающие списки, как только он был использован). Может быть, в этом и прелесть возвращения к программному обеспечению, которое было разработано, чтобы минимизировать входные расходы для новых пользователей!

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