Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Пример 7.3 – В рабочем листе Excel введен список сотрудников некоторой организации (столбец A) и их доходы (столбец B). Эти данные должны отображаться в списке, содержащемся в пользовательской форме (см. рисунок 7.5).
Требуется, чтобы при щелчке по элементу списка (т.е. при выборе сотрудника) вычислялся налог с дохода выбранного сотрудника. Налог должен выводиться в текстовое поле Налог на форме, а также на рабочий лист Excel в столбец C (рядом с доходом соответствующего сотрудника). При нажатии на кнопку Выход форма должна закрываться.
Для решения этой задачи требуется создать пользовательскую форму. Установить для нее свойства: Name = Nalogi, Caption = Расчет налогов.
|
| Рисунок 7.5 – Пользовательская форма со списком из двух колонок (пример 7.3) |
Требуется разместить на форме элементы управления и задать им свойства, как показано в таблице 7.1.
Таблица 7.1 – Элементы управления для примера 7.3
| Элемент управления | Свойства |
| Список (Listbox) | Name=Spisok_sotr |
| Надпись (Label) | Caption = Налог |
| Текстовое поле (TextBox) | Name = Pole_nalog |
| Кнопка (CommandButton) | Name = Vyhod, Caption = Выход |
Введем следующую процедуру инициализации пользовательской формы:
Private Sub Userform_Initialize()
Set d = Range("A1").CurrentRegion
With spisok_sotr
.ColumnCount = 2
.RowSource = d.Address
End With
End Sub
Здесь в операторе Set d = Range("A1").CurrentRegion переменная d связывается с диапазоном, заполненным данными (в данном примере – фамилиями сотрудников и их доходами). Оператор With Spisok_sotr указывает, что дальнейшие действия выполняются с объектом Spisok_sotr (где Spisok_sotr - имя списка, размещенного на форме). Область действия оператора With завершается строкой End With. Использование оператора With позволяет сократить ссылки на объект (в данном случае – на список Spisok_sotr). В операторе .ColumnCount = 2 устанавливается свойство списка Spisok_sotr, задающее количество его колонок (имя списка уже задано в операторе With). В операторе .RowSource = d.Address свойству списка RowSource, задающему источник данных для заполнения списка, присваивается адрес объекта d (т.е. диапазона с данными).
Для обработки щелчка по элементу списка введем следующую процедуру:
Private Sub Spisok_sotr_Click()
With spisok_sotr
i =.ListIndex
dohod =.List(i, 1)
Call raschet_naloga(dohod, nalog)
Pole_nalog.Value = nalog
Cells(i + 1, 3).Value = nalog
End With
End Sub
Здесь в операторе i =.ListIndex переменной i присваивается номер текущего элемента (точнее, текущей строки) списка Spisok_sotr; следует обратить внимание, что строки (как и столбцы) списка нумеруются с нуля. В операторе dohod =.List(i, 1) переменной dohod присваивается величина из i -й строки и первого столбца списка Spisok_sotr, т.е. величина дохода выбранного сотрудника. Следует еще раз обратить внимание, что столбцы списка нумеруются с нуля, т.е. в нулевом столбце находятся фамилии, а в первом – доходы.
В операторе Call raschet_naloga(dohod, nalog) вызывается процедура, реализующая алгоритм расчета налога. Результатом ее выполнения является переменная dohod. В двух следующих операторах эта величина выводится в текстовое поле пользовательской формы и на рабочий лист Excel.
Процедура расчета налога может быть, например, следующей:
Sub raschet_naloga(ByVal summa_dohoda, summa_naloga)
If summa_dohoda < 20000 Then
summa_naloga = summa_dohoda * 0.09
Else
summa_naloga = 20000 * 0.09 + (summa_dohoda - 20000) * 0.12
End If
End Sub
Здесь обозначение ByVal указывает, что в переменную summa_dohoda передается только значение соответствующей переменной, указанной при вызове процедуры (в данном случае – значение переменной dohod). Тем самым исключается случайное изменение переменной dohod в процедуре. Следует обратить внимание, что обозначение ByVal относится только к переменной summa_dohoda; таким образом, изменение переменной summa_naloga вызывает изменение соответствующей переменной nalog в вызывающей процедуре.
Приведем также процедуру для закрытия формы нажатием кнопки Vyhod:
Private Sub Vyhod_Click()
Unload Nalogi
End Sub
|
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!