Как использовать workbook.saveas с автоматической перезаписью

43

В этом разделе кода 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?

Спасибо заранее!

Теги:
excel-vba
excel
excel-2010

2 ответа

65
Лучший ответ

Чтобы не увидеть приглашение 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)
  • 0
    по какой-то причине мне все еще предлагают перезаписать файл: Application.DisplayAlerts = False wb.SaveAs fullfilePath, ConflictResolution: = Excel.xlLocalSessionChanges
  • 3
    вам нужно указать рабочую книгу, над которой вы работаете, чтобы не отображать предупреждения. Я обновил код выше .... Просто посмотрите на Application.DisplayAlerts должно быть wb.Application.DisplayAlerts
Показать ещё 9 комментариев
3

Я рекомендую перед выполнением SaveAs удалить файл, который существует.

If Dir("f:ull\path\with\filename.xls") <> "" Then
    Kill "f:ull\path\with\filename.xls"
End If

Это проще, чем отключение и включение DisplayAlerts, плюс, если DisplayAlerts остается отключенным из-за сбоя кода, это может вызвать проблемы, если вы работаете с Excel в одном сеансе.

  • 0
    Имейте в виду, что если файл открыт в другом процессе. это бросит исключение

Ещё вопросы

Сообщество Overcoder
Наверх
Меню