programing tip

자동 덮어 쓰기와 함께 workbook.saveas를 사용하는 방법

itbloger 2021. 1. 8. 07:54
반응형

자동 덮어 쓰기와 함께 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

ConflictResolutiontrue또는 false속성 이 아닙니다.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:ull\path\with\filename.xls") <> "" Then
    Kill "f:ull\path\with\filename.xls"
End If

DisplayAlerts를 끄고 켜는 것보다 더 쉽고 코드 충돌로 인해 DisplayAlerts가 꺼져있는 경우 동일한 세션에서 Excel로 작업하는 경우 문제가 발생할 수 있습니다.


의견의 차이를 나누기 위해

나는 선호한다:

   xls.DisplayAlerts = False    
   wb.SaveAs fullFilePath, AccessMode:=xlExclusive, ConflictResolution:=xlLocalSessionChanges
   xls.DisplayAlerts = True

참조 URL : https://stackoverflow.com/questions/14634453/how-to-use-workbook-saveas-with-automatic-overwrite

반응형