[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 这个VBS给WORD取消密码怎么不成功?

  1. Const WINDOW_HANDLE = 0
  2. Const OPTIONS = 0
  3. Dim objShell,objFolder,FolderPath,pw,wk,EAPP,FSO,FSOFolder,FSOFile
  4. '获取Excel文件所在文件夹路径
  5. Set objShell = CreateObject("Shell.Application")
  6. Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:", OPTIONS,"")
  7. If objFolder Is Nothing Then
  8. Wscript.Quit
  9. End If
  10. FolderPath =objFolder.Self.Path
  11. PW=Inputbox("请输入密码","批量去除密码")
  12. if len(PW)=0 then Wscript.Quit
  13. Set EAPP=CreateObject("Word.Application")
  14. Set FSO=CreateObject("Scripting.FileSystemObject")
  15. Set FSOFolder=FSO.GetFolder(FolderPath)
  16. For Each FSOFile in FSOFolder.Files
  17. If instr(Fsofile.Name,".doc") then
  18.     Set wk=EAPP.Documents.Open(FSOFile.Path,,,,pw)
  19.     wk.Password=""
  20.     wk.Close True
  21. End If
  22. Next
  23. EAPP.Quit
复制代码

回复 10# apang


    终于成功,谢谢老师!!

TOP

objItem.Type 在 office 2003 上显示的字串不一样,算了,还是fso遍历吧
  1. Const WINDOW_HANDLE = 0
  2. Const OPTIONS = 0
  3. Set objShell = CreateObject("Shell.Application")
  4. Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a Folder:", OPTIONS, &h00)
  5. If objFolder is Nothing Then WScript.Quit
  6. strPath = objFolder.Self.Path
  7. strPwd = Inputbox("请输入密码","批量去除密码")
  8. If Len(strPwd) = 0 Then WScript.Quit
  9. Set objWord = CreateObject("Word.Application")
  10. objWord.Visible = true
  11. Set fso = CreateObject("Scripting.FileSystemObject")
  12. For Each file in fso.GetFolder(strPath).Files
  13.         strExt = fso.GetExtensionName(file)
  14.         If LCase(Left(strExt, 3)) = "doc" Then
  15.                 Set objDoc = objWord.Documents.Open(file.Path,,,,strPwd)
  16.                 objDoc.Password = ""
  17.                 objWord.selection.TypeText " "
  18.                 objWord.selection.TypeBackSpace
  19.                 objDoc.SaveAs file.Path
  20.                 objDoc.Close True
  21.         End If
  22. Next
  23. objWord.Quit
  24. MsgBox "OK"
复制代码
1

评分人数

TOP

回复 8# ww0000


    请看2楼最后一行文字

TOP

回复 7# DAIC


    上面的代码在W7系统测试成功吗?

TOP

回复 6# ww0000


    不清楚,我已经很长时间不使用XP了,没用这样的环境,无法测试。

TOP

回复 4# DAIC


    是不是宏工具里面的工具---引用  没引用? 但加密都可以加的呀!

TOP

回复 4# DAIC


    XP系统,Office2003

TOP

回复 3# ww0000


    什么操作系统?Office版本呢?

TOP

回复 2# apang


    老师,密码不能删除!1

TOP

  1. Const WINDOW_HANDLE = 0
  2. Const OPTIONS = 0
  3. Set objShell = CreateObject("Shell.Application")
  4. Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a Folder:", OPTIONS, &h00)
  5. If objFolder is Nothing Then WScript.Quit
  6. strPath = objFolder.Self.Path
  7. strPwd = Inputbox("请输入密码","批量去除密码")
  8. If Len(strPwd) = 0 Then WScript.Quit
  9. Set objWord = CreateObject("Word.Application")
  10. objWord.Visible = true
  11. Set colItems = objShell.NameSpace(strPath).Items
  12. For Each objItem in colItems
  13.         If Left(objItem.Type,21) = "Microsoft Office Word" Then
  14.                 Set objDoc = objWord.Documents.Open(objItem.Path,,,,strPwd)
  15.                 objDoc.Password = ""
  16.                 objWord.selection.TypeText " "
  17.                 objWord.selection.TypeBackSpace
  18.                 objDoc.SaveAs objItem.Path
  19.                 objDoc.Close True
  20.         End If
  21. Next
  22. objWord.Quit
  23. MsgBox "OK"
复制代码
win7 32bit + ms word 2007 测试正常

TOP

返回列表