Користувацькі форми Excel - Поради Excel

Зміст
Excel 97 представив нові форми користувачів. Англійською мовою, навчіть мене, як створювати та використовувати поле списку.

MrExcel нещодавно заповнив спеціальну програму для одного з наших читачів. У цьому додатку Excel користувач вводить 150 аркушів даних для конкретного номера деталі на аркуші.

1. При натисканні кнопки цей номер деталі та пов'язані з нею значення даних передаються до бази даних на Аркуші2. Це було добре, але тоді нам потрібен був спосіб, щоб користувач викликав запис із аркуша 2, щоб він міг переглянути записи. Я хотів дозволити користувачеві відкрити форму із випадаючим вікном, що відображає всі елементи на аркуші

2. Користувач міг прокручувати, вибирати елемент, і тоді я перетягував би ці значення з аркуша 2 на аркуш 1.

Як і багато хто з вас, я почав писати макроси Excel у програмі Excel 5.0. Весь цей редактор макросів у Excel 97 трохи лякає. Для підказки цього тижня я поетапно покажу вам, як створити поле списку для цього проекту. Цього тижня увага зосереджена лише на списку сполучень. Цільова аудиторія - це той, хто знає основи макросів Excel, але хто ніколи не використовував форму для взаємодії з макросом.

Перший крок: я змінив існуючі макроси, щоб, коли вони додали запис на sheet2, макрос мав би назвати діапазон, що містить номери деталей, іменувати їх "PartList". У комірці А1 є заголовок, перший елемент у комірці А2. Я використав команду 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 у нижньому лівому куті, натисніть піктограму "Вікно властивостей" - це схоже на руку з пальцем, що вказує на білий аркуш.
  • Четвертий запис у вікні властивостей - Caption. Зараз підпис буде UserForm1. Клацніть поле праворуч від заголовка у вікні Властивості та введіть новий заголовок форми. Я назвав свою «Виберіть номер деталі для перегляду». Усі інші властивості форми я залишив у стані за замовчуванням.
    Створення вікна списку за допомогою форми користувача
  • Знову клацніть будь-де всередині форми користувача, і з’явиться Панель інструментів керування.
  • На панелі інструментів Елементи керування виберіть літеру А. Клацніть і перетягніть, щоб створити поле з мітками у верхній частині форми. За замовчуванням є підпис Label1. Клацніть всередині текстового поля ще раз, і ви зможете редагувати підпис. Додайте інструкції користувачеві тут: "Виберіть елемент зі списку нижче та натисніть кнопку ОК, щоб переглянути значення".
  • Клацніть на форму, але за межами поля етикетки, і ви знову побачите панель інструментів управління. Четвертий елемент у верхньому рядку - інструмент комбінованого вікна. Клацніть на це та перетягніть у форму користувача, щоб створити поле зі списком. Тут з’явиться список номерів деталей. Ім'я за замовчуванням - ComboBox1.
    Властивості Combobox
  • У вікні властивостей тепер відображатимуться властивості ComboBox1. Прокрутіть вниз властивості, поки не побачите властивість RowSource. Для властивості RowSource введіть = Sheet2! PartList
  • Тепер ви можете запустити швидкий тест, щоб переконатися, що все працює належним чином. Клацніть на рядок заголовка вашої форми користувача, щоб вибрати всю форму. Тепер натисніть піктограму "відтворити" (схоже на кнопку відтворення на вашому відеомагнітофоні). Ви повернетесь до своєї книги Excel і отримаєте нашу просту форму користувача. Якщо натиснути спадне меню номера деталі, ви побачите список дійсних номерів деталей. Виберіть один, і він залишиться у списку. Поки що не надто захоплююче. Клацніть на маленький Х у верхньому правому куті, щоб відхилити поле.
  • Поверніться до редактора Visual Basic. Клацніть на форму користувача, щоб показати Control Toolbox. Клацніть на інструмент CommandButton і намалюйте кнопку. Змініть підпис на «OK» за допомогою вікна «Властивості - CommandButton1».
  • Намалюйте другу кнопку і позначте її Скасувати.
  • Ми майже закінчили. Давайте прив’яжемо трохи коду до кнопки Скасувати. Клацніть правою кнопкою миші кнопку Скасувати і виберіть "Переглянути код". Редактор налаштує ваші оператори Sub та End Sub. Між ними введіть один рядок коду:
    UserForm1.Hide
  • Так, це все, що можна призначити коду кнопці. Щоб повернутися до форми користувача, двічі клацніть слова UserForm1 у вікні проекту. (Не бачите вікно проекту? Натисніть на піктограму Провідника проекту, ліворуч від піктограми Властивості.)
  • Щоб завершити форму user1, давайте щось зробимо за допомогою кнопки OK. Коли користувач натискає кнопку «ОК», я хочу, щоб значення з вікна списку з’явилося в осередку A2 листа A2, а потім я хочу розпочати макрос, який я раніше писав під назвою ReviewItem. Клацніть правою кнопкою миші кнопку OK і виберіть Переглянути код. Введіть цей код для Private Sub CommandButton1_Click ():
    Worksheets("Sheet1").Range("A2") = UserForm1.ComboBox1.Value UserForm1.Hide ReviewItem

Вітаємо! Ви заповнили свою першу форму користувача. Щоб форма з’явилася, запустіть макрос, який має такий рядок:

UserForm1.Show

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

Готова форма користувача

Цікаві статті...