Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод новой записи в форме, обработка записейСодержание книги Поиск на нашем сайте
Первый пример иллюстрирует возможность дополнения записей в форме с ручным вводом значений всех полей с клавиатуры. Дополним исходную таблицу двумя полями: Пол и Дата поступления на работу. В редакторе VBA отобразим окно проекта и окно свойств (View / Project Explorer и View / Properties Window), создадим пользовательскую форму (Insert / Userform), введем в нее элементы управления – пять надписей (Label), пять полей ввода (TextBox), две кнопки (CommandButton). Изменим свойства объекта форма – заголовок (Caption), шрифт (Font). Добавим в проект Модуль (Insert / Module).
Процедура, активизирующая форму, содержит только одну команду UserForm1.Show ‘активизировать форму
Процедура, закрепленная за кнопкой Ввести Private Sub CommandButton1_Click() ‘личная процедура первой командной кнопки формы i = 1 ‘переменной, отвечающей за номер строки, присваиваем значение 1 While Cells(i, 1) <> Empty ‘цикл, до тех пор, пока в ячейке i строки и первого столбца не будет пусто i = i + 1 ‘увеличить номер анализируемой строки на 1 Wend ‘закончить цикл With UserForm1 ‘действия с объектами формы Cells(i, 1) =.TextBox1.Text ‘ячейке текущей строки и первого столбца присвоить значение первого текстового поля формы Cells(i, 2) =.TextBox2.Text Cells(i, 3) =.TextBox3.Text Cells(i, 4) =.TextBox4.Text Cells(i, 5) =.TextBox5.Text .Hide ‘удалить форму с экрана End With ‘закончить действия с формой End Sub ‘конец процедуры Рис. 4
Процедура, закрепленная за кнопкой Отмена Private Sub CommandButton2_Click() UserForm1.Hide End Sub
Второй пример показывает преимущества использования различных элементов управления в форме, освобождающих пользователя от ручного ввода данных с клавиатуры. Для этого создадим форму (рис. 5), в которой для ввода пола сотрудника используем переключатели (OptionBytton), для ввода должности – поле со списком (ComboBox), оклада – счетчик и поле ввода (SpinButton и TextBox). Для удобства пользователя в качестве даты, заданной по умолчанию, примем текущую дату. Рис. 5 Sub ввод_форма () With UserForm2 .TextBox2 = Date ‘второму полю ввода присвоить значение текущей даты ‘Второй лист содержит справочник должностей, заполняющий поле ‘ввода со списком i = 1 While Sheets("Лист2").Cells(i, 1) <> Empty ‘ .ComboBox1.AddItem Sheets("Лист2").Cells(i, 1) i = i + 1 Wend .Show End With End Sub
‘Процедура очищает элементы управления формы или присваивает ‘им первоначальные значения для дальнейшего ввода Sub clear_form() With UserForm2 .TextBox1 = Empty ‘очищается поле с фамилией .OptionButton1.Value = True ‘включается первая опция .TextBox2 = Date ‘устанавливается текущая дата .TextBox3 = 1000 ‘первоначальное значение оклада присваивается полю ввода .ComboBox1.ListIndex = 0 ‘в списке активизируется первый элемент .SpinButton1.Value = 1000 ‘первоначальное значение оклада присваивается счетчику End With End Sub ‘Процедура закреплена за кнопкой Ввести Private Sub CommandButton1_Click() ‘осуществляется поиск первой пустая ячейки в первом столбце ‘текущего листа i = 1 While Cells(i, 1) <> Empty i = i + 1 Wend Cells(i, 1) = TextBox1 ‘если включена первая опция, в ячейку текущей строки второго ‘столбца записывается “м”, в противном случае “ж”. If OptionButton1.Value = True Then Cells(i, 2) = "м" Else Cells(i, 2) = "ж" End If Cells(i, 3) = TextBox2.Text Cells(i, 4) = ComboBox1.Text Cells(i, 5) = TextBox3.Text clear_form End Sub
Процедура, закрепленная за кнопкой Отмена Private Sub CommandButton2_Click() UserForm2.Hide End Sub
Две ниже представленные процедуры позволяют «связать между собой» поле ввода, отражающее оклад, и счетчик. Private Sub SpinButton1_Change() TextBox3.Text = SpinButton1.Value End Sub
Private Sub TextBox3_Change() SpinButton1 = CCur(TextBox3.Text) End Sub
Задание № 9. Создать программы по вводу новой записи и обработке с использованием пользовательских форм и различных элементов управления (см. табл. 5 и 6). Задание № 10. Создать процедуру по поиску записей по символьному полю. Вывод найденных записей осуществить в пользовательской форме с возможностью перехода по записям вперед и назад. Задание № 11. Создать процедуру по поиску записей из диапазона дат. Начальная и конечная даты вводятся на разных страницах формы, для ввода дня и года использовать счетчик, для ввода месяца – список (рис. 6). (* Предусмотреть проверку правильности ввода дат*). Рис. 6
Задачи для самостоятельной работы приведены в прил. 1. В них необходимо разработать алгоритм решения задачи и создать процедуры, позволяющие заполнять часть рабочего листа Excel согласно таблице. Исходным данным является размер квадратной заполняемой области n, вводимой с помощью счетчика в пользовательской форме.
ТЕМА № 5
|
|||||||
Последнее изменение этой страницы: 2016-12-17; просмотров: 175; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.244.92 (0.006 с.) |