saveas方法不要用在迴圈裡
這個迴圈是遍歷當前工作簿中的所有工作表,並取消保護
而saveas儲存的是整個工作簿,不是單個工作表,因此放在迴圈體中就會多次儲存同一個檔案,所以會出現“替換”的提示。
application.displayalerts=false
禁止提示視窗即可。
完整程式碼如下:
privatesubworkbook_beforesave(byvalsaveasuiasboolean,cancelasboolean)
"撤消所有工作表的保護
foreachshtinthisworkbook.worksheets
sht.unprotect
nextsht
application.displayalerts=false"禁止顯示提示視窗
myfilename="aaa-"&format(date,"yymmdd")&".xlsx"
thisworkbook.saveasfilename:=myfilename,fileformat:=xlnormal"另存為
"恢復所有工作表的保護
sht.protect
application.displayalerts=true"允許顯示提示視窗
endsub
saveas方法不要用在迴圈裡
這個迴圈是遍歷當前工作簿中的所有工作表,並取消保護
而saveas儲存的是整個工作簿,不是單個工作表,因此放在迴圈體中就會多次儲存同一個檔案,所以會出現“替換”的提示。
application.displayalerts=false
禁止提示視窗即可。
完整程式碼如下:
privatesubworkbook_beforesave(byvalsaveasuiasboolean,cancelasboolean)
"撤消所有工作表的保護
foreachshtinthisworkbook.worksheets
sht.unprotect
nextsht
application.displayalerts=false"禁止顯示提示視窗
myfilename="aaa-"&format(date,"yymmdd")&".xlsx"
thisworkbook.saveasfilename:=myfilename,fileformat:=xlnormal"另存為
"恢復所有工作表的保護
foreachshtinthisworkbook.worksheets
sht.protect
nextsht
application.displayalerts=true"允許顯示提示視窗
endsub