17.1.7. Код формы frm_Balance
В листинге 17.5. вы можете найти код модуля формы frm_Balance. Здесь мы вычисляем баланс доходов и расходов по всей таблице. Вычисления ведутся в коде обработчика события Activate.
Private Sub cmd_OK_Click()
frm_Balance.Hide
End Sub
Private Sub UserForm_Activate()
'Адрес строки
Dim num_Address
'Переменная для хранения суммы доходов
Dim num_Earn
'Переменная для хранения суммы расходов
Dim num_Spend
For i = 1 To ActiveSheet.Range("B1") - 1
num_Address = i + ActiveSheet.Range("B2")
'Если в строке хранится значение дохода
'добавим его в num_Earn
If ActiveSheet.Cells(num_Address, 3) = "Доход" _
Then
num_Earn = num_Earn + _
ActiveSheet.Cells(num_Address, 4)
End If
'Если в строке хранится значение расхода
'добавим его в num_Spend
If ActiveSheet.Cells(num_Address, 3) = "Расход" _
Then
num_Spend = num_Spend + _
ActiveSheet.Cells(num_Address, 4)
End If
Next i
lbl_Balance = num_Earn - num_Spend
If num_Earn > num_Spend Then _
lbl_Msg = "Доходы больше расходов."
If num_Earn = num_Spend Then _
lbl_Msg = "Доходы равны расходам."
If num_Earn < num_Spend Then _
lbl_Msg = "Доходы меньше расходов."
End Sub
Листинг 17.5. Код формы frm_Balance (html, txt)
17.2. Задача об обмене значениями
17-02-Обмен значений.xlsm - пример к п. 17.2.
17.2.1. Условие
Произвести обмен значениями двух переменных без использования третьей
17.2.2. Решение
Предположим, что имеются 2 переменные (А и В), содержащие числа. Для обмена значениями этих переменных достаточно произвести следующие действия:
Сложить А и В и результат записать в А
Вычесть из А переменную В и записать результат в В.
Вычесть из А переменную В и записать результат в А.
Для решения задачи будем считать, что число A записано в ячейку B2, число В - в ячейку C2. Подпишем соответствующим образом эти ячейки и разместим на рабочем листе кнопку с именем cmd_Change и надписью Обменять А и В (рис. 17.6.)
Рис. 17.6. Рабочий лист, подготовленный для решения задачи
В листинге 17.6. вы можете найти программный код для решения задачи, размещенный в обработчике события Click для кнопкиcmd_Change
'Сохраняем сумму ячеек в B2
ActiveSheet.Range("B2") = _
ActiveSheet.Range("B2") + _
ActiveSheet.Range("C2")
'Разность сохраняем в С2
ActiveSheet.Range("C2") = _
ActiveSheet.Range("B2") - _
ActiveSheet.Range("C2")
'И еще раз разность в B2
ActiveSheet.Range("B2") = _
ActiveSheet.Range("B2") - _
ActiveSheet.Range("C2")
Листинг 17.6. Решение задачи (html, txt)
17.3. Перевод чисел из одной системы счисления в другую
17-03-Системы счисления.xlsm - пример к п. 17.3.
17.3.1. Условие
Перевести заданное пользователем целое число A из одной системы счисления ( P ) в другую ( Q ). P и Q могут изменяться от 2 до 10.
