Как программно открыть рабочую книгу без автоматического запуска событий, в т.ч. Workbook_Open — Visual Basic(Бейсик)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
iFullName = "C:\Temp\Test.xls"
  
Application.EnableEvents = False
Workbooks.Open FileName:=iFullName
Application.EnableEvents = True
Используя этот совет мы можем блокировать выполнение и других событий, пример см. ниже
 
code: #basic
iFullName = "C:\Temp\Test.xls"
  
With Application
     .EnableEvents = False
     .Workbooks.Open FileName:=iFullName
     .EnableEvents = True
End With
code: #basic
iFullName = "C:\Temp\Test.xls"
  
With Application
     .EnableEvents = False
     .ScreenUpdating = False
     With .Workbooks.Open(FileName:=iFullName)
          If Not .ProtectStructure Then
             With .Worksheets.Add(After:=.Sheets(.Sheets.Count))
                  'Не будет выполняться событие Workbook_NewSheet
                  .Range("A1").Value = "Дата"
                  .Range("B1").Value = "Сумма"
                  .Range("C1").Value = "Оплата"
                  'Не будет выполняться событие Workbook_SheetChange
             End With
          End If
          .Close saveChanges:=True
          'Не будет выполняться событие Workbook_BeforeClose
     End With
     .ScreenUpdating = True
     .EnableEvents = True
End With

Leave a Comment