В этом разделе кода Excel ALWAYS предлагает: "Файл уже существует, вы хотите перезаписать?"
Application.DisplayAlerts = False
Set xls = CreateObject("Excel.Application")
Set wb = xls.Workbooks.Add
fullFilePath = importFolderPath & "\" & "A.xlsx"
wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=True
wb.Close(True)
Почему db.SaveAs
всегда предлагает мне перезаписать существующий файл, если у меня есть DisplayAlerts = False
?
Спасибо заранее!
Чтобы не увидеть приглашение xls.DisplayAlerts = False
ConflictResolution
не является истинным или ложным свойством, оно должно быть xlLocalSessionChanges
- обратите внимание, что это не имеет ничего общего с отображением подсказки Overwrite, хотя!
Set xls = CreateObject("Excel.Application")
xls.DisplayAlerts = False
Set wb = xls.Workbooks.Add
fullFilePath = importFolderPath & "\" & "A.xlsx"
wb.SaveAs fullFilePath, AccessMode:=xlExclusive,ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
wb.Close (True)
Я рекомендую перед выполнением SaveAs удалить файл, который существует.
If Dir("f:ull\path\with\filename.xls") <> "" Then
Kill "f:ull\path\with\filename.xls"
End If
Это проще, чем отключение и включение DisplayAlerts, плюс, если DisplayAlerts остается отключенным из-за сбоя кода, это может вызвать проблемы, если вы работаете с Excel в одном сеансе.