如果我在excel中有以下表格,其中包含不同的文件名及其路径。 如何为所有excel工作簿分配密码? 假设在Cell C2中的文件路径应该在C2中分配密码 单元格B3中的文件路径应在C3 ...等中分配密码
我发现大多数可用的VBA代码主要与为同一文件夹下的所有文件分配一个单独的密码有关,但是我需要为1000多个文件分配不同的密码,我还需要删除所有密码后来。它可以由VBA完成吗?
对不起,我是VBA的新手,因工作需要而开始探索它。
谢谢!
答案 0 :(得分:0)
@FDavidov
谢谢!我可以找到一个代码,将所有文件中的一个密码分配到该文件夹中。但我不知道如何改变它以适应我的scanario。任何人都可以建议我应该如何改变?谢谢!!!
Public Sub addPassword() 昏暗的FSO作为对象 Dim文件夹As Object,子文件夹As Object Dim wb As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
folderPath = ActiveSheet.Range("C2").Value
pwd = ActiveSheet.Range("C3").Value
Set folder = FSO.GetFolder(folderPath)
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
.AskToUpdateLinks = False
End With
For Each wb In folder.Files
If Right(wb.Name, 3) = "xls" Or Right(wb.Name, 4) = "xlsx" Or Right(wb.Name, 4) = "xlsm" Then
Set masterWB = Workbooks.Open(wb)
ActiveWorkbook.SaveAs Filename:=Application.ActiveWorkbook.FullName, Password:=pwd
ActiveWorkbook.Close True
End If
Next
For Each subfolder In folder.SubFolders
For Each wb In subfolder.Files
If Right(wb.Name, 3) = "xls" Or Right(wb.Name, 4) = "xlsx" Or Right(wb.Name, 4) = "xlsm" Then
Set masterWB = Workbooks.Open(wb)
ActiveWorkbook.SaveAs Filename:=Application.ActiveWorkbook.FullName, Password:=pwd
ActiveWorkbook.Close True
End If
Next
Next
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
.AskToUpdateLinks = True
End With
End Sub
答案 1 :(得分:0)
声明两个变量一个用于保存文件名而另一个用于保存密码。
然后,您只需要一个循环(而不是两个):
构建您要设置密码的文件的全名(事实上,您可以在示例的B列中找到它),
获取需要用于此文件的密码(示例中的C列),
打开您提取名称的文件
使用您提取的密码保存,
关闭文件。
一旦检索到的文件名为空,循环就会退出。
这种描述可能需要复杂,但我保证这很简单。只要尝试一下,您就会体验到自己构建一些东西的满足感。
提示:Excel的VB编辑器允许您设置断点以暂停执行并检查变量的值;这也将帮助您更好地了解您正在做的事情,如果某些事情无效,请快速找出问题所在。
最后,好运!!!!