Пользовательские формы Excel - Советы по Excel

Содержание
В Excel 97 представлены новые пользовательские формы. На английском научите меня создавать и использовать список.

MrExcel недавно завершил создание специального приложения для одного из наших читателей. В этом приложении Excel пользователь вводит 150 точек данных для определенного номера детали на листе.

1. При нажатии кнопки этот номер детали и соответствующие значения данных сохраняются в базе данных на Sheet2. Это было нормально, но тогда нам понадобился способ, чтобы пользователь мог вызвать запись с листа 2, чтобы они могли просмотреть записи. Я хотел разрешить пользователю открывать форму с раскрывающимся списком, показывающим все элементы на листе.

2. Пользователь мог пролистать список, выбрать элемент, а затем я перетащил эти значения с листа 2 на лист 1.

Как и многие из вас, я начал писать макросы Excel в Excel 5.0. Весь этот редактор макросов в Excel 97 немного пугает. В качестве совета этой недели я покажу вам шаг за шагом, как создать список для этого проекта. На этой неделе основное внимание уделяется окну со списком. Целевая аудитория - это те, кто знаком с основами макросов Excel, но никогда не использовал формы для взаимодействия с макросами.

Первый шаг: я изменил существующие макросы таким образом, чтобы при добавлении записи в лист 2 макрос называл диапазон, содержащий номера деталей, с именем «PartList». В ячейке A1 есть заголовок с первым элементом в ячейке A2. Я использовал команду End, чтобы найти последнюю строку:

LastRow = Range("A6000").End(xlUp).Row ActiveWorkbook.Names.Add Name:="PartList", RefersTo:="=Sheet2!$A$2:$A$" & LastRow

Второй шаг: разметьте форму списка. Следуй этим шагам:

  • Запустите редактор Visual Basic, нажав alt-F11
  • В меню выберите Вставить> Форма пользователя. Редактор должен предоставить вам пустую UserForm1.
  • Если вы не видите поле Properties-UserForm1 в нижнем левом углу, нажмите значок «Окно свойств» - он выглядит как рука с пальцем, указывающим на белый лист.
  • Четвертая запись в окне свойств - Заголовок. Прямо сейчас заголовок будет UserForm1. Щелкните поле справа от заголовка в окне свойств и введите новый заголовок для формы. Я назвал свой «Выберите номер детали для обзора». Я оставил все остальные свойства формы в их состоянии по умолчанию.
    Создание окна списка с помощью пользовательской формы
  • Снова щелкните в любом месте формы пользователя, и появится панель инструментов управления.
  • На панели инструментов «Элементы управления» выберите букву A. Щелкните и перетащите, чтобы создать поле метки в верхней части формы. По умолчанию это заголовок Label1. Щелкните внутри текстового поля еще раз, и вы сможете изменить заголовок. Поместите инструкции для пользователя сюда: «Выберите элемент из списка ниже и нажмите OK, чтобы просмотреть значения».
  • Щелкните форму, но за пределами поля метки, и вы снова увидите панель инструментов управления. Четвертый элемент в верхнем ряду - это инструмент поля со списком. Щелкните его и перетащите в пользовательскую форму, чтобы создать поле со списком. Здесь появится список номеров деталей. Имя по умолчанию - ComboBox1.
    Свойства поля со списком
  • В окне свойств теперь будут отображаться свойства ComboBox1. Прокрутите вниз по свойствам, пока не увидите свойство RowSource. Для свойства RowSource введите = Sheet2! PartList
  • Теперь вы можете запустить быстрый тест, чтобы убедиться, что все работает правильно. Щелкните строку заголовка вашей пользовательской формы, чтобы выделить всю форму. Теперь щелкните значок «воспроизведение» (он похож на кнопку воспроизведения на вашем видеомагнитофоне). Вы вернетесь в свою книгу Excel и получите нашу простую пользовательскую форму. Если вы щелкните раскрывающийся список номеров деталей, вы должны увидеть список действительных номеров деталей. Выберите один, и он останется в поле со списком. Пока не слишком увлекательно. Щелкните маленький крестик в правом верхнем углу, чтобы закрыть окно.
  • Вернитесь в редактор Visual Basic. Щелкните форму пользователя, чтобы отобразить Панель инструментов управления. Щелкните инструмент CommandButton и нарисуйте кнопку. Измените заголовок на ОК в окне Свойства - CommandButton1.
  • Нарисуйте вторую кнопку и назовите ее Отмена.
  • Мы почти закончили. Давайте привяжем немного кода к кнопке Отмена. Щелкните правой кнопкой мыши кнопку «Отмена» и выберите «Просмотреть код». Редактор настроит ваши операторы Sub и End Sub. Между ними введите одну строку кода:
    UserForm1.Hide
  • Да, это все, что нужно для присвоения кода кнопке. Чтобы вернуться к пользовательской форме, дважды щелкните слова UserForm1 в окне проекта. (Не видите окно проекта? Нажмите значок Project Explorer, слева от значка Properties.)
  • Чтобы закончить user form1, давайте сделаем что-нибудь с кнопкой ОК. Когда пользователь нажимает кнопку «ОК», я хочу, чтобы значение из списка отображалось в ячейке A2 листа 1, а затем я хочу запустить ранее написанный макрос под названием ReviewItem. Щелкните правой кнопкой мыши кнопку ОК и выберите Просмотреть код. Введите этот код для частной подпрограммы CommandButton1_Click ():
    Worksheets("Sheet1").Range("A2") = UserForm1.ComboBox1.Value UserForm1.Hide ReviewItem

Поздравляю! Вы закончили свою первую пользовательскую форму. Чтобы форма появилась, запустите макрос со следующей строкой:

UserForm1.Show

Форма будет выглядеть примерно так:

Готовая форма пользователя

Интересные статьи...