Range(«b6»).FormulaLocal = «=b3*b7^3+b4*sin(b7)»
Range(«b6»).GoalSeek Goal:=c, changingCell:=Range(«b7»)
TextBox4.Text = CStr(.Range(«b7»).Value)
TextBox4.Text = FormatNumber(TextBox4.Text, 2)
End With
End Sub
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Private Sub UserForm_initialize()
Worksheets(1).Visible = False
End Sub
Технология выполнения
1. Запустите приложение Excel, сохраните документ.
2. Перейдите в редактор VBA. Создайте форму согласно приведенному рис. 94.
![](/pic/5/6/2/0/1//i_135.png)
Рис. 94. Разработанная форма примера 42 в режиме конструктора
3. На листе Excel расположите необходимый текст (оформление), предусмотрев соответствующие ячейки вывода информации (рис. 95).
![](/pic/5/6/2/0/1//i_136.png)
Рис. 95. Вывод результатов на лист excel после запуска формы
4. Обработайте кнопки.
Const strNomer = 3 количество строк для заголовка
Dim strName1 As String 'строка для адресации ячеек
Dim strName2 As String
Dim nomer As Long номер очередной строки таблицы
Private Sub CommandButton1_Click()
ActiveWorkbook.SaveAs («работа с базой данных. xls»)
nomer = 1 End Sub
Private Sub CommandButton2_Click()
strName1 = Trim(Str(strNomer + nomer))
With ActiveSheet 'ввод данных для новой отчетной таблицы
Range('A' + strName1).Value = nomer
Range('B' + strName1).Value = TextBox1.Text
Range('C' + strName1).Value = TextBox2.Text
Range('D' + strName1).Value = TextBox3.Text
'автозаполнение с текущей строки таблицы
strName2 = Trim(Str(strNomer + nomer + 1))
Set range1 =.Range('A' + strName1 +':D' + strName1)
Set range2 =.Range('A' + strName1 +':D' + strName2)
range1.AutoFill Destination:=range2
Range('A' + strName2 +':D' + strName2).Clear
End With
' очистка полей формы для ввода очередной записи
TextBox1.Text = ''
TextBox2.Text = ''
TextBox3.Text = ''
TextBox1.SetFocus
nomer = nomer + 1
End Sub
Private Sub CommandButton3_Click()
'закрытие формы подведение итогов и вывод фамилии преподавателя
UserForm1.Hide
With ActiveSheet
strName2 = Trim(Str(strNomer + nomer + 2))
Range('A' + strName2).Value = «классный руководитель»
Range('D' + strName2).Value = TextBox4.Text
End With
End Sub
5. Откомпилируйте программу и запустите на выполнение.
7.2. Использование возможностей VBA при непосредственных расчетах
1) создать шаблонную часть этого документа с помощью табличного процессора Excel;
2) составить программу на языке VBA, которая будет запрашивать у пользователя исходные данные для заполнения этой таблицы, производить необходимые расчеты и помещать все данные в соответствующие ячейки, предусмотренные в шаблоне.
![](/pic/5/6/2/0/1//i_137.png)
Звездочкой (*) помечены те графы таблицы, по которым необходимо подвести итог.
Технология выполнения
Анализ таблицы показывает, что вид деятельности, прогноз прибыли и фактическая прибыль являются исходными данными, отклонение (в процентах и в сумме) – расчетными. Кроме того, рассчитываются итоги по некоторым графам таблицы.
Шаблон создается на обычном рабочем листе в Excel. При этом необходимо только зарезервировать свободные ячейки для занесения следующих данных: месяц, год, потребительское общество, сумма