SaveAs Confusion
Я тоже в замешательстве. Когда вы сохраняете рабочую книгу с макросами (.xlsm) как рабочую книгу с макросами (.xlsx), рабочая книга остается открытой, но в ней есть код. Но хорошо, что он сохраняется без кода. Теперь вы можете сохранить его «вручную» и сохранить, так как в следующий раз он будет без кода (макросов).
Код должен демонстрировать следующее:
- Хорошей практикой будет начать с
Option Explicit
, который поможет вам предупредить вас, когда что-то не так. - Хорошей практикой является использование констант в начале кода, особенно для таких длинных путей к файлам, поэтому когда вам нужно изменить их, вы можете легко их найти.
- Когда вы отключаете событие, есть вероятность, что вы не сможете включить его снова, если не будете осторожны. Если возникает ошибка, вам нужно перенаправить код, чтобы снова включить эти события.
- Если вы хотите закрыть книгу, используйте строку
ThisWorkbook.Close
Option Explicit
Sub SaveMacroDisabled()
Const strPath = "I:\Excel\MyDocuments\Test\Test4\"
Const strXLSX = "BookMacroDisabled"
On Error GoTo ProgramError
Application.DisplayAlerts = False
ThisWorkbook.SaveAs strXLSX, _
FileFormat:=xlWorkbookDefault
SafeExit:
Application.DisplayAlerts = True
' ThisWorkbook.Close
Exit Sub
ProgramError:
MsgBox "An unexpected error occurred"
On Error GoTo 0
GoTo SafeExit
End Sub