如何使用自动覆盖的workbook.saveas

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用自动覆盖的workbook.saveas相关的知识,希望对你有一定的参考价值。

在这部分代码中,Excel总是提示:“文件已存在,您要覆盖吗?”

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 - 请注意,这与显示覆盖提示无关!

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:ullpathwithfilename.xls") <> "" Then
    Kill "f:ullpathwithfilename.xls"
End If

它比关闭和打开DisplayAlerts更容易,而且如果DisplayAlerts由于代码崩溃而保持关闭,如果您在同一会话中使用Excel,则可能会导致问题。

另一答案

分裂意见分歧

我更喜欢

xl0.DisplayAlerts = False

保存,然后应该快速返回

xl0.DisplayAlerts = True

..

以上是关于如何使用自动覆盖的workbook.saveas的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL workbook.saveas 函数详解

Workbook.SaveAs 使 Excel 与某些工作簿而非其他工作簿一起崩溃

什么是代码覆盖率,你如何衡量它?

保存操作失败时如何捕获网络上的哪个用户打开了文件?

如何每天自动删除不同工作的多个 GDG 代?

Git如何从远程拉取最新代码,并与本地代