Вы можете использовать элемент управления RefEdit в Excel VBA, чтобы получить диапазон от пользователя. UserForm мы будем создавать цвета минимальное значение диапазона, хранимого в элементе управления RefEdit.

Userform and Ranges in Excel VBA

Для создания этого UserForm, выполните следующие действия.

  1. Откройте редактор Visual Basic. Если проводник проекта не отображается, нажмите кнопку Просмотр, Project Explorer.

  2. Нажмите кнопку Вставить, UserForm. Если панель инструментов не появляется автоматически, нажмите кнопку View, Toolbox. Экран должен быть установлен, как показано ниже.

Userform Screen Setup in Excel VBA

  1. Добавьте метку, управление RefEdit и командные кнопки. После того, как это было закончено, результат должен быть согласован с изображением UserForm, показанным ранее. Например, создать элемент управления RefEdit, нажав на REFEDIT из панели инструментов. Далее, вы можете перетащить элемент управления RefEdit на UserForm.

Примечание: Если панель инструментов не имеет контроля RefEdit, установить ссылку на управление RefEdit. Нажмите Инструменты, ссылки и проверить Ref Edit Control.

  1. Вы можете изменить имена и подписи элементов управления. Имена используются в коде Excel VBA. Титры являются те, которые появляются на экране. Это хорошая практика, чтобы изменить имена элементов управления, но не надо здесь, потому что у нас есть только несколько элементов управления в этом примере. Для того, чтобы изменить заголовок кнопки UserForm, метки и команды, выберите Вид, Свойства окна и нажмите на каждого элемента управления.

  2. Для того, чтобы показать UserForm, поместить командную кнопку на листе и добавьте следующие строки кода:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Сейчас мы собираемся создать Sub UserForm_Initialize. При использовании метода Show для UserForm, этот подпункт будет автоматически выполняться.

  1. Откройте редактор Visual Basic.

  2. В окне Project Explorer, щелкните правой кнопкой мыши на UserForm1, а затем нажмите кнопку Просмотр кода.

  3. Выберите UserForm из списка левого выпадающего списка. Выберите Initialize справа в раскрывающемся списке.

  4. Добавьте следующие строки кода:

Private Sub UserForm_Initialize()

Sheet1.Cells.Font.Color = vbBlack

UserForm1.RefEdit1.Text = Selection.Address

End Sub

Объяснение: первая строка кода изменяет цвет шрифта всех ячеек на sheet1 до черного. Вторая строка кода получает адрес текущего выбора и отображает его в элементе управления RefEdit.

Теперь мы создали первую часть UserForm. Хотя это выглядит аккуратным уже ничего не случится еще когда мы нажмем кнопку команд на UserForm.

  1. В окне проекта дважды щелкните на UserForm1.

  2. Дважды нажмите на кнопку Go.

  3. Добавьте следующие строки кода:

Private Sub CommandButton1_Click()

Dim addr As String, rng, cell As Range, minimum

As Double

addr = RefEdit1.Value

Set rng = Range(addr)

minimum = WorksheetFunction.Min(rng)

For Each cell In rng

If cell.Value = minimum Then cell.Font.Color = vbRed

Next cell

End Sub

Объяснение: во-первых, мы получаем адрес от управления RefEdit и сохранить его в переменной адр String. Далее мы устанавливаем ГСЧ в диапазоне, указанном в контроле RefEdit. Далее, мы используем функцию рабочего листа Min найти минимальное значение в диапазоне. Наконец, мы цвет минимального значения (ы) с помощью цикла.

  1. Дважды щелкните на кнопке Отмена.

  2. Добавьте следующую строку кода:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Объяснение: Этот код строки закрывает UserForm при нажатии на кнопку Отмена.

Тест 15. UserForm.

Результат:

Userform and Ranges Result