|
测试.rar
(81.79 KB, 下载次数: 60)
有很多WORD文档,但都有密码保护,编辑不了页眉页脚,知道WORD的密码,密码是123,一个个取消密码保护太麻烦了,怎么用VBA批量解除?批量处理一个文件夹下(包括子文件夹)的所有word,但还些是没有密码的, 在同个文件夹下还有各种格式的文件,都忽略处理,就只处理带密码的word。
下面的这个我看不懂,试了也不成功,所以想请教高手,帮忙改下或者重新写,非常感谢!我用的是word 2003
可以参考下面的网址:http://zhidao.baidu.com/question/159094135.html?fr=ala0
参考内容如下:
可以试试用如下步骤批量去除密码保护:
1、首先在Word里面打开原始文档;
2、键入Alt+F11打开VBA编辑器;
3、选择菜单命令“插入-模块”;
4、在代码编辑区中输入如下代码:
Option Explicit
Sub UnProtectAllDocFiles()
On Error Resume Next
Const strRootPath = "c:\Temp\docs\protected\" ' 存放文档的目录
Const strPassword = "1234" ' 密码
Dim oDoc As Document
Dim fso, oFolder, oFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder(strRootPath)
For Each oFile In oFolder.Files
Set oDoc = Documents.Open(FileName:=oFile.Path, PasswordDocument:=strPassword)
oDoc.Saved = False
oDoc.SaveAs2 FileName:=oFile.Path, Password:="", WritePassword:=""
oDoc.Close
Next
MsgBox "完成!"
End Sub
5、根据你的实际情况,修改代码中的文件目录和密码。
6、注意上面代码适用于Word2010,如果你的Word是2003或者2007的话,需要把oDoc.SaveAs2...这句话改成oDoc.SaveAs...。
7、键入F5,运行直到提示“完成!”。
8、检查该目录下的所有文件是否都已取消密码。
注意,我这里假定那个指定的目录下放的全部文件都是被用同一个密码加了密的Word文件,没有任何其它文件。
______________________
补充:
刚才另外一个朋友说运行没有效果。我仔细看了一下,可能是因为我用了Word2010特有的函数。现在把上面的代码改了一下,再试试看吧!
______________________
再补充:
用下面这个代码,可以递归处理子目录下面的文件:
Option Explicit
Sub UnProtectAllDocFiles()
On Error Resume Next
Const strRootPath = "c:\Temp\docs\Help\BatchUnprotect\" ' 存放所有文件的目录,可以有子目录
Dim fso, oFolder
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder(strRootPath)
UnProtectDocFilesUnderFolder oFolder
MsgBox "完成!"
End Sub
Sub UnProtectDocFilesUnderFolder(oFolder)
On Error Resume Next
Dim oSubFolder, oFile
Dim oDoc As Document
Const strPassword = "password" ' 统一的密码
For Each oSubFolder In oFolder.SubFolders
UnProtectDocFilesUnderFolder oSubFolder
For Each oFile In oSubFolder.Files
Set oDoc = Documents.Open(FileName:=oFile.Path)
oDoc.Unprotect strPassword
oDoc.Close True
Next
Next
End Sub
把鼠标在第一个Sub函数里面点一下,然后F5运行即可。 |
|