簡體   English   中英

使用帶有密碼的另存為的Vba Excel錯誤

[英]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.AddmySheet的迭代器添加到該表中,並設置密碼並保存。 可以單行完成此操作,但同樣非常清晰且可調試。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM