Отключить все диалоговые окна в Excel при запуске сценария VB?
У меня есть некоторый код в VB, который сохраняет все файлы XLSM как XLSX. У меня уже есть код, который сделает это для меня, но диалоговые окна появляются для каждого действия. Это было хорошо для нескольких десятков файлов. Тем не менее, я собираюсь использовать это для сотен файлов XLSM одновременно, и я не могу просто сидеть за компьютером весь день, щелкая диалоговые окна снова и снова.
Код, который я попробовал, в значительной степени:
Application.DisplayAlerts = False
Хотя это не вызывает ошибку, это также не работает.
В полях отображается предупреждение о включении макросов, а также предупреждение о том, что при сохранении в формате XLSX файл всех макросов удаляется. Учитывая тип предупреждений, я подозреваю, что они ограничили отключение этих диалоговых окон из-за угрозы безопасности.
Поскольку я запускаю этот код в редакторе VB в Excel, возможно, есть ли опция, которая позволит мне отключить диалоговые окна для отладки?
Я также попробовал:
Application.DisplayAlerts = False
Application.EnableEvents = False
' applied code
Application.DisableAlerts = True
Application.EnableEvents = True
Ни один из тех не работал.
Редактировать:
Вот как выглядит код выше в моем текущем коде:
Public Sub example()
Application.DisplayAlerts = False
Application.EnableEvents = False
For Each element In sArray
XLSMToXLSX(element)
Next element
Application.DisplayAlerts = False
Application.EnableEvents = False
End Sub
Sub XLSMToXLSX(ByVal file As String)
Do While WorkFile <> ""
If Right(WorkFile, 4) <> "xlsx" Then
Workbooks.Open Filename:=myPath & WorkFile
Application.DisplayAlerts = False
Application.EnableEvents = False
ActiveWorkbook.SaveAs Filename:= _
modifiedFileName, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True
Application.EnableEvents = True
ActiveWorkbook.Close
End If
WorkFile = Dir()
Loop
End Sub
Я также окружилFor
петля, в отличие отActiveWorkbook.SaveAs
линия:
Public Sub example()
For Each element In sArray
XLSMToXLSX(element)
Next element
End Sub
Наконец я сдвинулApplication.DisplayAlerts
вышеWorkbooks.Open
линия:
Sub XLSMToXLSX(ByVal file As String)
Do While WorkFile <> ""
If Right(WorkFile, 4) <> "xlsx" Then
Workbooks.Open Filename:=myPath & WorkFile
Application.DisplayAlerts = False
Application.EnableEvents = False
ActiveWorkbook.SaveAs Filename:= _
modifiedFileName, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True
Application.EnableEvents = True
ActiveWorkbook.Close
End If
WorkFile = Dir()
Loop
End Sub
Ни одна из этих работ, а также.
Редактировать:
Я использую Excel для Mac 2011, если это поможет.