Практическая часть. 625001 , г. Тюмень, ул. Садовая, д.109, корп.1 ОГРН 1087232020798 ИНН/КПП 7204124198/720401001 р/счет 40703810400000000410 в ГРКЦ ГУ Банка России по Тюменской
625001, г. Тюмень, ул. Садовая, д.109, корп.1 ОГРН 1087232020798 ИНН/КПП 7204124198/720401001 р/счет 40703810400000000410 в ГРКЦ ГУ Банка России по Тюменской обл. г. Тюмень БИК 04710200 тел./факс (3452) 69-62-35 e-mail: sdusshor3@mail.ru
О Т Ч Е Т
ЛАБОРАТОРНАЯ РАБОТА № 7
Калуга, 2014 г. Теоретическая часть Sheets — это все листы рабочей книги. Листы рабочей книги представлены двумя типами: рабочие листы — это обычные листы Excel и второй тип — это листы диаграмм. Те и другие и составляют коллекцию Sheets. Объект Worksheet входит в состав об'екта Workbook и представляет собой рабочий лист MS Excel.
Свойство DisplayAlerts Если требуется отключить вывод встроенных подсказок и предупреждений при выполнении макроса, необходимо присвоить значение False свойству DisplayAlerts. В этом случае Excel производит стандартные действия, выбирая применяемый по умолчанию ответ на сообщения. Исходное значение свойства DisplayAlerts равно True. Событие Activate Событие Activate происходит, когда объект становится активным окном. А становится активным окном он может в двух случаях. Это в результате Show, когда форма становится видимой на экране и в результате получения фокуса. Событие Terminate Данное событие происходит, когда все ссылки на экземпляр объекта удаляются из памяти с помощью присвоения всем переменным, которые ссылаются на данный объект, состояния Nothing или когда последняя ссылка на объект выходит за пределы области определения. Это событие идет вслед за Unload.
Практическая часть Листинг: Private Sub UserForm_Activate() gCount = 0 ReDim arrayPer(10) 'если нет листа выполнение. добавляем его ob = True For I = 1 To Sheets.Count If Sheets(I).Name = "выполнение" Then ob = False Exit For End If Next I If Not ob Then Application.DisplayAlerts = False Sheets("выполнение").Select ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True End If Sheets("маркировка").Select Sheets("маркировка").Unprotect Sheets("маркировка").Copy Before:=Sheets(1) Sheets(1).Select Sheets(1).Name = "выполнение" UserFormRun.CommandButtonBack.Enabled = False 'формируем порядок запусков переходов Columns(3).Select With Selection.Font .Name = "Arial Cyr" .FontStyle = "полужирный" .Size = 10 .Italic = False End With Cells(1, 3).Value = "Запускаемые переходы" Range("C1").Select Columns(3).EntireColumn.AutoFit End Sub
Private Sub CommandButtonRun_Click() Sheets("сеть").Unprotect Sheets("выполнение").Unprotect sper = UserFormRun.ComboBoxPer.List(UserFormRun.ComboBoxPer.ListIndex) per = Mid(sper, 2) Dim nPos nPos = DefineCountPos() For j = 1 To nPos Worksheets("выполнение").Cells(j + 1, 2).Value = Worksheets("выполнение").Cells(j + 1, 2).Value - _ Worksheets("сеть").Cells(j * 2, per + 2).Value + Worksheets("сеть").Cells(j * 2 + 1, per + 2).Value Next j Call FormActivePer("выполнение") UserFormRun.CommandButtonBack.Enabled = True gCount = gCount + 1 If gCount > UBound(arrayPer) Then ReDim Preserve arrayPer(UBound(arrayPer) + 10) End If arrayPer(gCount) = per Worksheets("выполнение").Unprotect Worksheets("выполнение").Cells(gCount + 1, 3).Value = sper Range(Cells(gCount + 1, 3), Cells(gCount + 1, 3)).Select End Sub
Private Sub CommandButtonBack_Click() per = arrayPer(gCount) Worksheets("выполнение").Cells(gCount + 1, 3).Value = "" Range(Cells(gCount, 3), Cells(gCount, 3)).Select gCount = gCount - 1 Dim nPos nPos = DefineCountPos() For j = 1 To nPos Worksheets("выполнение").Cells(j + 1, 2).Value = Worksheets("выполнение").Cells(j + 1, 2).Value + _ Worksheets("сеть").Cells(j * 2, per + 2).Value - Worksheets("сеть").Cells(j * 2 + 1, per + 2).Value Next j Call FormActivePer("выполнение") If gCount = 0 Then UserFormRun.CommandButtonBack.Enabled = False End If End Sub
|