找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21604|回复: 10

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

[复制链接]
发表于 2015-1-20 14:39:36 | 显示全部楼层 |阅读模式
  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
复制代码
发表于 2015-1-20 20:37:39 | 显示全部楼层
  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 测试正常
 楼主| 发表于 2015-1-21 08:21:26 | 显示全部楼层
回复 2# apang


    老师,密码不能删除!1
发表于 2015-1-21 09:02:19 | 显示全部楼层
回复 3# ww0000


    什么操作系统?Office版本呢?
 楼主| 发表于 2015-1-21 09:06:48 | 显示全部楼层
回复 4# DAIC


    XP系统,Office2003
 楼主| 发表于 2015-1-21 09:10:15 | 显示全部楼层
回复 4# DAIC


    是不是宏工具里面的工具---引用  没引用? 但加密都可以加的呀!
发表于 2015-1-21 09:12:08 | 显示全部楼层
回复 6# ww0000


    不清楚,我已经很长时间不使用XP了,没用这样的环境,无法测试。
 楼主| 发表于 2015-1-21 09:13:56 | 显示全部楼层
回复 7# DAIC


    上面的代码在W7系统测试成功吗?
发表于 2015-1-21 09:22:13 | 显示全部楼层
回复 8# ww0000


    请看2楼最后一行文字
发表于 2015-1-21 10:09:39 | 显示全部楼层
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技术 +1 收起 理由
ww0000 + 1 感谢帮助!!

查看全部评分

 楼主| 发表于 2015-1-21 11:47:24 | 显示全部楼层
回复 10# apang


    终于成功,谢谢老师!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:06 , Processed in 0.022033 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表