excel vba - activeworkbook - Cómo usar workbook.saveas con sobrescritura automática
activeworkbook.saveas overwrite (2)
Para no ver la solicitud establecida xls.DisplayAlerts = False
ConflictResolution
no es una propiedad verdadera o falsa, debe ser xlLocalSessionChanges
. Sin xlLocalSessionChanges
, tenga en cuenta que esto no tiene nada que ver con mostrar el mensaje 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)
En esta sección del código, Excel SIEMPRE indica: "El archivo ya existe, ¿desea sobrescribir?"
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)
¿Por qué db.SaveAs
siempre me db.SaveAs
que sobrescriba el archivo existente si tengo DisplayAlerts = False
?
¡Gracias por adelantado!
Recomiendo que antes de ejecutar SaveAs, elimine el archivo que existe.
Si Dir ("f: ull / path / with / filename.xls") <> "" Then Kill "f: ull / path / with / filename.xls" End If
Es más fácil que activar y desactivar DisplayAlerts, y si DisplayAlerts permanece desactivado debido a un bloqueo del código, puede causar problemas si trabaja con Excel en la misma sesión.