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