Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2817|回复: 7

[已解决]如何给excle 文件加密

[复制链接]
发表于 2013-10-30 08:57 | 显示全部楼层 |阅读模式
利用VBA 给一个文件夹下的所有excle 文件 加密成     “linglu”
最佳答案
2013-10-30 10:51
本帖最后由 suye1010 于 2013-10-31 13:14 编辑
  1. Const WINDOW_HANDLE = 0
  2. Const OPTIONS = 0
  3. Dim objShell,objFolder,FolderPath,PassWord,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. PassWord=Inputbox("请输入密码","批量添加密码")
  12. if len(password)=0 then Wscript.Quit
  13. Set EAPP=CreateObject("Excel.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,".xls") then
  18.     Set wk=EAPP.Workbooks.Open(FSOFile)
  19.     wk.Password=PassWord
  20.     wk.Close True
  21. End If
  22. EAPP.Quit
  23. Next
复制代码
复制到记事本并修改相应的内容,存储为.VBS文件,双击运行,即可.
AddPasswordToXls.zip (636 Bytes, 下载次数: 33)
发表于 2013-10-30 10:48 | 显示全部楼层
要不用BatchXLS这个软件试试?
BatchXLS285.zip (862.07 KB, 下载次数: 11)
回复

使用道具 举报

发表于 2013-10-30 10:50 | 显示全部楼层
回复

使用道具 举报

发表于 2013-10-30 10:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suye1010 于 2013-10-31 13:14 编辑
  1. Const WINDOW_HANDLE = 0
  2. Const OPTIONS = 0
  3. Dim objShell,objFolder,FolderPath,PassWord,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. PassWord=Inputbox("请输入密码","批量添加密码")
  12. if len(password)=0 then Wscript.Quit
  13. Set EAPP=CreateObject("Excel.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,".xls") then
  18.     Set wk=EAPP.Workbooks.Open(FSOFile)
  19.     wk.Password=PassWord
  20.     wk.Close True
  21. End If
  22. EAPP.Quit
  23. Next
复制代码
复制到记事本并修改相应的内容,存储为.VBS文件,双击运行,即可.
AddPasswordToXls.zip (636 Bytes, 下载次数: 33)
回复

使用道具 举报

 楼主| 发表于 2013-10-30 17:04 | 显示全部楼层
suye1010 您好!!

你这代码挺好的,就是太死,能不能弄成选择路径呀!!这样可以方便我选择任何一个文件夹下的文件,不用我每次都的把文件拷贝到一个路径下!!
回复

使用道具 举报

发表于 2014-2-21 17:41 | 显示全部楼层
谢谢楼主的分享!很好用啊。
回复

使用道具 举报

发表于 2015-1-12 11:38 | 显示全部楼层
好用是好用,但不知道如何改成解密的脚本?
回复

使用道具 举报

发表于 2015-1-12 22:22 | 显示全部楼层
改成保护工作表密码,可是手动不能解除,不知是何原因?

Const WINDOW_HANDLE = 0
Const OPTIONS = 0
Dim objShell,objFolder,FolderPath,PassWord,wk,EAPP,FSO,FSOFolder,FSOFile,sht,mySheet,Worksheets,Sheets,Protect,Name
'获取Excel文件所在文件夹路径
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:", OPTIONS,"")
If objFolder Is Nothing Then
        Wscript.Quit
End If
FolderPath =objFolder.Self.Path
PassWord=Inputbox("请输入密码","批量添加密码")
if len(password)=0 then Wscript.Quit
Set EAPP=CreateObject("Excel.Application")
Set FSO=CreateObject("Scripting.FileSystemObject")
Set FSOFolder=FSO.GetFolder(FolderPath)
For Each FSOFile in FSOFolder.Files
If instr(Fsofile.Name,".xls") then
    Set wk=EAPP.Workbooks.Open(FSOFile)
For Each sht in wk.Worksheets
mySheet = sht.Name
wk.Sheets(mySheet).Protect PassWord=PassWord
Next
wk.Close True
End If
EAPP.Quit
Next
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 23:16 , Processed in 0.276389 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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