Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 250; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.223 (0.007 с.) |