Excel VBA UserForm и Изменяется
Вы можете использовать элемент управления RefEdit в Excel VBA, чтобы получить диапазон от пользователя. UserForm мы будем создавать цвета минимальное значение диапазона, хранимого в элементе управления RefEdit.
Для создания этого UserForm, выполните следующие действия.
-
Откройте редактор Visual Basic. Если проводник проекта не отображается, нажмите кнопку Просмотр, Project Explorer.
-
Нажмите кнопку Вставить, UserForm. Если панель инструментов не появляется автоматически, нажмите кнопку View, Toolbox. Экран должен быть установлен, как показано ниже.
-
Добавьте метку, управление RefEdit и командные кнопки. После того, как это было закончено, результат должен быть согласован с изображением UserForm, показанным ранее. Например, создать элемент управления RefEdit, нажав на REFEDIT из панели инструментов. Далее, вы можете перетащить элемент управления RefEdit на UserForm.
Примечание: Если панель инструментов не имеет контроля RefEdit, установить ссылку на управление RefEdit. Нажмите Инструменты, ссылки и проверить Ref Edit Control.
-
Вы можете изменить имена и подписи элементов управления. Имена используются в коде Excel VBA. Титры являются те, которые появляются на экране. Это хорошая практика, чтобы изменить имена элементов управления, но не надо здесь, потому что у нас есть только несколько элементов управления в этом примере. Для того, чтобы изменить заголовок кнопки UserForm, метки и команды, выберите Вид, Свойства окна и нажмите на каждого элемента управления.
-
Для того, чтобы показать UserForm, поместить командную кнопку на листе и добавьте следующие строки кода:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Сейчас мы собираемся создать Sub UserForm_Initialize. При использовании метода Show для UserForm, этот подпункт будет автоматически выполняться.
-
Откройте редактор Visual Basic.
-
В окне Project Explorer, щелкните правой кнопкой мыши на UserForm1, а затем нажмите кнопку Просмотр кода.
-
Выберите UserForm из списка левого выпадающего списка. Выберите Initialize справа в раскрывающемся списке.
-
Добавьте следующие строки кода:
Private Sub UserForm_Initialize() Sheet1.Cells.Font.Color = vbBlack UserForm1.RefEdit1.Text = Selection.Address End Sub
Объяснение: первая строка кода изменяет цвет шрифта всех ячеек на sheet1 до черного. Вторая строка кода получает адрес текущего выбора и отображает его в элементе управления RefEdit.
Теперь мы создали первую часть UserForm. Хотя это выглядит аккуратным уже ничего не случится еще когда мы нажмем кнопку команд на UserForm.
-
В окне проекта дважды щелкните на UserForm1.
-
Дважды нажмите на кнопку Go.
-
Добавьте следующие строки кода:
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 найти минимальное значение в диапазоне. Наконец, мы цвет минимального значения (ы) с помощью цикла.
-
Дважды щелкните на кнопке Отмена.
-
Добавьте следующую строку кода:
Private Sub CommandButton2_Click() Unload Me End Sub
Объяснение: Этот код строки закрывает UserForm при нажатии на кнопку Отмена.
Тест 15. UserForm.
Результат: