КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Самостоятельная работа
End Sub CurrentRegion End If Exit Sub End If Exit Sub Dim n As Long Dim r As Range End Sub CurrentRegion Dim r As Range End Sub Dim n As Long End Sub Private Sub ListBox1_Click() n = Application.WorksheetFunction.CountA(Columns(1)) Cells(n + 1, 1).Value = ListBox1.Text Заполнение списка из диапазона Задание 2 Учет поездок сотрудников некоторой фирмы.
При инициализации формы производится заполнение списков в форме. Список городов заполняется с явным указанием адреса диапазона (свойство RowSource объекта ListBox), а прежде чем заполнить список сотрудников, т.к. он может иметь переменный размер, происходит сначала идентификация диапазона, потом определение его адреса, а уже затем заполнение списка: Dim r As Range Set r = WorkSheets(“Сотрудники”).Range(“A1”)_ .CurrentRegion ListBox.RowSource = r.Address(RowAbsolute:= False,_ ColumnAbsolute:= False, External:= True) При нажатии кнопки ОК на листе Поездки в два столбца выводится список поездок сотрудников по городам. В первую очередь проверяется, были ли выбраны данные из списков (Если выбор не был осуществлен, то свойство ListIndex соответствующего объекта ListBox меньше 0. В этом случае выводится соответствующее сообщение, и происходит выход из подпрограммы.). Далее определяется номер первой свободной строки в списке из листа Поездки (свойство Count объекта Rows), и в нее выводятся выбранные данные из списков формы.
Выполнение: Задайте следующие значения свойств для элементов управления:
Программный код имеет вид: Private Sub UserForm_Initialize() lstCity.RowSource = “Города!A1:A5” Set r = WorkSheets(“Сотрудники”).Range(“A1”)_ lstName.RowSource = r.Address(RowAbsolute:= False,_ ColumnAbsolute:= False,_ External:= True) Private Sub cmdOK_Click() If lstName.ListIndex < 0 Then MsgBox «Не выбрано значение из списка Сотрудники» If lstCity.ListIndex < 0 Then MsgBox «Не выбрано значение из списка Города» Set r = WorkSheets(“Поездки”).Range(“A1”)_ n = r.Rows.Count WorkSheets(“Поездки”).Activate Cells(n + 1, 1).Value = lstName.Text Cells(n + 1, 2).Value = lstCity.Text Лабораторная работа № 34 Согласованная работа двух списков Задание: Некоторое издательство сотрудничает с определенными магазинами в разных городах. Необходимо обеспечить согласованную работу двух списков. В одном из списков содержится перечень городов (например, Москва, Санкт-Петербург). При выборе элемента из этого списка во втором столбце должен отображаться перечень магазинов: Москва: «Библеос-Глобус», «Дом книги», «Кнорус», «Мир»; Санкт-Петербург: «Дом книги», «Техническая книга», «Прометей». Замечание. Элементы массива могут иметь тип Variant, а переменной типа Variant может быть все, что угодно, в частности другой массив. Поэтому допустимо создание массива массивов. Комментарии к написанию программного кода: В области General необходимо описать переменную и массив типа Variant. В подпрограмме инициализации формы необходимо в переменную типа Variant, описанную в общей области, передать список городов, а в массив типа Variant передать массивы магазинов каждого города. Затем заполнить список городов из формы и определить значение индекса по умолчанию в этом списке. В подпрограмме обработки события Click для списка ListBox1 необходимо очистить от данных список ListBox2 и заполнить его данными с помощью значений массива с индексом, соответствующим значению индекса, выбранному в первом списке. Выполнение: Программный код имеет вид: Dim City As Variant Dim Shop(2) As Variant Private Sub UserForm_Initialize() City = Array(«Москва», «Санкт-Петербург») Shop(0) = Array(«Библеос-Глобус», «Дом книги», «Кнорус», «Мир») Shop(1) = Array(«Дом книги», «Техническая книга», «Прометей») ListBox1.List = City ListBox1.ListIndex = 0 End Sub Private Sub ListBox1_Click() ListBox2.Clear ListBox2.List = Shop(ListBox1.ListIndex) End Sub
Создать форму пользователя, с помощью которой отдел оптовых продаж литературы распространяет книги по книжным магазинам разных городов. Список магазинов:
Рабочая книга MS Excel содержит 2 листа: «Книги» с исходной информацией о названиях книг (столбец А) и ценах одного экземпляра (столбец В); «Отправка» с конечной информацией, представленной в виде:
Форма содержит: список Книги; 2 согласованных списка Города и Магазины; кнопку ОК. Приложение работает по следующему сценарию: Список Книги заполняется с помощью массива, расположенного на Листе «Книги». Списки Города и Магазины заполняются с помощью массивов как согласованные. При нажатии на кнопку ОК проверяется, выбраны ли значения во всех трех списках. При отсутствии выбора строки в каком-либо списке выдается соответствующее сообщение, и программа прекращает работу. Затем открывается окно ввода для указания количества отправляемых экземпляров выбранной книги. Цена одного экземпляра книги передается из соответствующей ячейки рабочего Листа «Книги». Затем рассчитывается стоимость отправляемой партии книг. Заполняется таблица на рабочем Листе «Отправка». Лабораторные работы № 35 -36 Использование оператора If … Then … Else в функции пользователя Задание 1 Создайте функцию пользователя для расчета по формуле: Начальные данные имеют вид:
Выполнение: 1. Создайте на рабочем листе таблицу с начальными данными и предусмотрите столбец для вывода результата. 2. Перейдите в редактор Visual Basic. Добавьте в проект модуль (Insert → Module). 3. Для создания функции пользователя выполните команду: Insert → Procedure. В открывшемся окне Добавления процедуры (Add Procedure) введите имя функции (например, FFF), выберите в рамке Type переключатель Function, в рамке Scope – Public. 4. В открывшемся окне кода введите следующий программный код:
Дата добавления: 2017-01-14; Просмотров: 280; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |