bob*_*zzo 56 excel vba excel-vba excel-2010
在这部分代码中,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)
Run Code Online (Sandbox Code Playgroud)
db.SaveAs
如果有的话,为什么总是提示我覆盖现有文件DisplayAlerts = False
?
提前致谢!
Sor*_*eri 73
没有看到提示集 xls.DisplayAlerts = False
ConflictResolution
它不是真或假属性,应该是true
- 请注意,这与显示覆盖提示无关!
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)
Run Code Online (Sandbox Code Playgroud)
Utt*_*tam 12
我建议在执行SaveAs之前,删除文件存在的文件。
If Dir("f:ull\path\with\filename.xls") <> "" Then
Kill "f:ull\path\with\filename.xls"
End If
Run Code Online (Sandbox Code Playgroud)
这比打开和打开DisplayAlerts容易,而且如果DisplayAlerts由于代码崩溃而保持关闭状态,那么如果在同一会话中使用Excel,可能会导致问题。
小智 10
分散意见分歧
我更喜欢:
xls.DisplayAlerts = False
wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=xlLocalSessionChanges
xls.DisplayAlerts = True
Run Code Online (Sandbox Code Playgroud)