[英]Vba Excel error using SaveAs with password
我編寫了一個簡單的代碼,將每個Excel工作表另存為受密碼保護的新文件(.xlsx):
For i = 1 To 7
ThisWorkbook.Sheets(i).Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & i & ".xlsx", FileFormat:=51, Password:="XXX"
ActiveWorkbook.Close False
Next i
它可以正常工作,但錯誤是所創建的文件似乎具有某種自動運行的功能(如果您只是單擊圖標,它們會自動打開),然后有關密碼的Excel彈出窗口在添加到“ &&受保護”,然后要求輸入兩次密碼。
有任何想法嗎?
謝謝
一般建議,如果不是100%必要,請不要使用ThisWorkbook,ActiveWorkbook,Active Worksheet等。 它經常導致問題。 其次,由於可調試性,有時多幾行代碼總比少多行。
以下是最重要的代碼點:您的源工作簿定義為wbSource
並且初始化了變量wbTarget
。 通過Set wbTarget = Workbooks.Add
為工作簿中的每個工作表創建一個新工作簿。 Set wbTarget = Workbooks.Add
表mySheet
的迭代器添加到該表中,並設置密碼並保存。 可以單行完成此操作,但同樣非常清晰且可調試。
Sub test()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim wbSource As Workbook, wbTarget As Workbook
Dim wsToCopy As Worksheet
Set wbSource = ThisWorkbook
For Each mySheet In wbSource.Sheets
Set wbTarget = Workbooks.Add
mySheet.Copy Before:=wbTarget.Sheets(1)
wbTarget.Password = "XXX"
wbTarget.Close True, mySheet.Name
Next mySheet
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.