ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 使用VBA+WinRAR压缩解压缩文件

使用VBA+WinRAR压缩解压缩文件

作者:绿色风 分类: 时间:2022-08-18 浏览:147
楼主
杨开科

  1. Option Explicit
  2. Dim FileString
  3. Dim Source         '   源文件
  4. Dim Target          '   目标文件
  5. Dim Result

  6. Sub 压缩文件()
  7.     FileString = "C:\Program Files\WinRAR\WinRAR.exe"    'WinRAR.exe文件路径
  8.     Source = ThisWorkbook.Path & "\test.xls"
  9.     Target = ThisWorkbook.Path & "\test.rar"  '扩展名可以是RAR、ZIP、CAB、ARJ、LZH....
  10.     FileString = FileString & " a " & "-ep " & Target & " " & Source
  11.     'MsgBox FileString
  12.     Result = Shell(FileString, vbHide)
  13. End Sub

  14. Sub 解压缩文件()
  15.     FileString = "C:\Program Files\WinRAR\WinRAR.exe"
  16.     Source = ThisWorkbook.Path & "\test.rar"
  17.     Target = ThisWorkbook.Path & "\new\"     '指出解压文件添加的位置。如果文件夹不存在时,会自动创建。"
  18.     'FileString = FileString & " x " & Source & " " & Target'
  19.     FileString = FileString & " x " & "-Y " & Source & " " & Target  '指定-Y 开关,“是”为默认值,并自动回应全部的询问。
  20.     Result = Shell(FileString, vbHide)
  21. End Sub

  22. 'WinRAR字母命令列表
  23. 'a 添加文件到压缩文件
  24. 'c 添加压缩文件注释
  25. 'd 从压缩文件删除文件
  26. 'e 从压缩文件解压压缩,忽略路径
  27. 'f 刷新压缩文件中的文件
  28. 'i 在压缩文件中查找字符串
  29. 'k 锁定压缩文件
  30. 'm 移动文件和文件夹到压缩文件
  31. 'r 修复受损的压缩文件
  32. 'rc 重建丢失的卷
  33. 'rn 重命名压缩文件
  34. 'rr[N]   添加数据恢复记录
  35. 'rv[N]   创建恢复卷
  36. 's[name] 转换压缩文件成为自解压文件类型
  37. 's -删除自解压模块
  38. 't 测试压缩文件
  39. 'u 从压缩文件中更新文件
  40. 'x 以完整路径名称从压缩文件解压压缩

  41. '开关: -EP - 从名字排除路径
  42. '开关: -Y - 对所有询问均回应为“是”


代码有些缺陷,主文件放在桌面、我的文档、C:\Program Files下运行时,无法压缩和解压缩文件,欢迎斧正!
2楼
little-key
Source = ThisWorkbook.Path & "\test.xls"
这句控制的是需要压缩文件的路径,可以根据实际修改啊。
3楼
HHAAMM
ThisWorkbook.Path里要是存在空格的话Shell函数的参数就会混乱,所以不能有空格
4楼
HHAAMM
这样
Sub 压缩文件()

    FileString = "C:\Program Files\WinRAR\WinRAR.exe"    'WinRAR.exe文件路径

    Source = ThisWorkbook.Path & "\test.xls"
   
    Target = ThisWorkbook.Path & "\test.rar" '扩展名可以是RAR、ZIP、CAB、ARJ、LZH....

    FileString = FileString & " a -ep """ & Target & """ """ & Source & """"

    MsgBox FileString

    Result = Shell(FileString, vbHide)

End Sub
5楼
杨开科
大悟,那用chr(34)也应该是可以的。
6楼
HHAAMM
这样写看的清楚些,其实就是加上引号
FileString = FileString & " a -ep " & Chr(34) & Target & Chr(34) & " " & Chr(34) & Source & Chr(34)

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap