Как программно открыть рабочую книгу без автоматического запуска событий, в т.ч. Workbook_Open?

code: #basic
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

Актуально для MS Excel 97, 2000, XP

Поделиться:

Похожие статьи: