使用SaveAs和密码的Vba Excel错误

时间:2018-04-23 16:22:44

标签: excel vba excel-vba passwords save-as

我编写了一个简单的代码,将每个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弹出窗口显示“&&的副本受到保护“添加到”&&并受到保护“并要求输入密码两次。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

一般的建议,如果不是100%必要,请不要使用ThisWorkbook,ActiveWorkbook,Active Worksheet等。它往往会导致问题。第二件事,由于可调试性,有时候几行代码比更少代码要好。

下面最重要的代码点:您的源工作簿定义为foreach ($ADUser in $ADUsers) { Write-Verbose "Adding User $($ADUser.SamAccountName) to group $($ADGroup)" Add-ADGroupMember -Identity $ADGroup -Members $ADUser } ,并初始化变量wbSource。对于工作簿中的每个工作表,您可以通过wbTarget创建一个新工作簿,将表单Set wbTarget = Workbooks.Add复制到它,设置密码并保存。这可以在一行中完成,但这又是非常清晰和可调试的。

mySheet