gpt4 book ai didi

excel - 创建新文件并删除密码保护

转载 作者:行者123 更新时间:2023-12-04 22:32:54 24 4
gpt4 key购买 nike

我使用以下 VBA 在我的桌面上保存一个新文件:

Sub Files()
ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
MsgBox ("File saved successfully on desktop.")
ThisWorkbook.Close SaveChanges = False
End Sub

到目前为止,这一切都很好。

我的原始文件受密码保护。应在使用上述 VBA 创建的新文件中删除此保护。

为了取消保护文件,我有以下 VBA:
Sub Unprotection()
Dim b As Worksheet
For Each b In Worksheets
b.Unprotect Password:="abc"
Next b
End Sub

但是,我不知道如何将此代码输入到创建新文件的过程中。我尝试使用下面的代码,但它只在原始文件中运行,而不在我创建的新文件中运行。
Sub Files()
ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
Call Unprotection
MsgBox ("File saved successfully on desktop.")
ThisWorkbook.Close SaveChanges = False
End Sub

你知道如何解决这个问题吗?

最佳答案

如果您不想取消保护原始工作簿,可以将新工作簿作为参数传递给 Unprotection:

Sub Files()
Dim wb As Workbook
ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
Set wb = Workbooks.Open("C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False)
Call Unprotection(wb)
MsgBox ("File saved successfully on desktop.")
ThisWorkbook.Close SaveChanges = False
End Sub

Sub Unprotection(wb As Workbook)
Dim b As Worksheet
For Each b In wb.Worksheets
b.Unprotect Password:="abc"
Next b
End Sub

关于excel - 创建新文件并删除密码保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com