Excel VBA – Как открыть Userform с использованием переменной в имени

Я пытаюсь открыть определенные UserForms на основе значений ячеек в одной строке листа. Есть 17 UserForms, поэтому я не хочу использовать 17 операторов if для каждой формы:

If ActiveCell.Value = 1 Then UserForm1.Show End If 

Есть ли способ, которым я могу использовать переменную для отображения форм? Я думал о чем-то вроде:

 Dim i Do If ActiveCell.Value = "" Then Exit DO End If i = ActiveCell.Value UserForms("UserForm" & i).Show ****THIS is what doesn't work ActiveCell.Offset(0,1).Select Loop 

Мне просто нужно вызвать функцию UserForm с помощью переменной. Возможно ли это?

Заранее благодарим за любые ответы / предложения!

-Давид

Вставьте код из предоставленной Харви, затем настройте эту строку в коде:

 UserForms("UserForm" & i).Show ****THIS is what doesn't work 

чтобы:

 ShowAnyForm ("UserForm" & i) 

Это отличная ссылка Харви, я добавил ее в закладки!

Вы можете использовать часто пропускаемый объект VBA.UserForms. См. Эту ссылку, которая полностью определяет, что вам нужно делать.

Нет смысла объяснять это здесь.

Харви

Я никогда не приходил по методу, указанному @Harvey (мне это нравится, хотя), поэтому использовал бы какой-то оператор Select Case:

 Select Case .Cells(1,1).Value Case 1: FormOne.Show Case 2: FormTwo.Show ' And so on and do forth... Case Else: MsgBox ("Invalid entry") End Select 

Проще чем 17 Если утверждения, по крайней мере.

  • Добавить правила IF с использованием пользовательской формы в excel vba
  • Как загрузить данные в Excel Userform Listbox из формы Access напрямую?
  • Отображение «живых» данных диаграммы в Excel Userform
  • Закрыть пользовательскую форму с помощью myForm.Скрыть или разгрузить меня
  • Элементы списка combobox Userform + сохранять значения пользовательской формы как варианты в VBA Excel
  • Excel VBA Billing Userform вопросы ввода данных
  • Импорт и экспорт пользовательских форм и модулей
  • Excel только показывать пользовательскую форму, никогда не показывать книгу
  • Excel VBA - запись нескольких значений флажков пользовательской формы в одну ячейку
  • VBA Excel: аргумент не является необязательным
  • Определите, какая строка VBA выполняется в настоящий момент для панели выполнения
  • Interesting Posts

    Длительное время исполнения

    c # читать свойство шрифта excel cell, когда ячейка содержит смешанный полужирный и обычный текст, используя Interop

    Условно чистое содержимое диапазона ячеек в строке на основе значения ячейки

    VBA VLookup на разных листах

    Устранение неполадок вызова функции DLL из Excel Vba

    Excel VBA, чтобы выбрать диапазон дат и переместить его на новый лист

    excel проверить, существует ли комбинация ячеек в строке в диапазоне

    Как загрузить данные файла Excel в несколько таблиц с помощью пакета SSIS?

    Изменить уже загруженную пользовательскую форму из другой книги?

    Показать / скрыть списки, если значение true – очистить код (VBA, EXCEL)

    Чтение строк в Matlab от excel?

    Выбран метод класса рабочего листа

    как сделать линейное преобразование в excel?

    Как проверить, защищен ли файл Excel, или нет в C #?

    «Определение приложения или объектная ошибка» при попытке создать таблицу

    Давайте будем гением компьютера.