ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 954|回复: 7

[分享] VBA解压文件和压缩文件函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-1-10 20:36 | 显示全部楼层 |阅读模式


操作电脑文件 解压和压缩

压缩方法
yasuo 压缩文件路径, 被压缩文件路径
如:yasuo "D:\A.rar", "D:\A.txt"   '此句把A.txt压缩成A.rar,放到D盘

解压方法
jieya 压缩文件路径, 解压到目标文件夹路径
如:jieya "D:\A.rar", "D:\"   '此句把A.rar内文件解压到D盘


调用例子
  1. Sub 文件压缩测试()
  2. yasuo "D:\A.rar", "D:\A.txt"
  3. End Sub
复制代码
  1. Sub 文件解压测试()
  2. jieya "D:\A.rar", "D:"
  3. End Sub
复制代码

解压\压缩函数
  1. Function jieya(rarP$, foderP$)
  2. Dim exeP$
  3. exeP = GetSetupPath("WinRAR.exe")
  4. If exeP = "" Then MsgBox "未安装 WinRAR 软件": Exit Function
  5. Shell exeP & "\WinRAR.exe  X " & rarP & " " & foderP, vbHide
  6. End Function
  7. Function yasuo(rarP$, fileP$)
  8. Dim exeP$
  9. exeP = GetSetupPath("WinRAR.exe")
  10. If exeP = "" Then MsgBox "未安装 WinRAR 软件": Exit Function
  11. Shell exeP & "\WinRAR.exe A -ep " & rarP & " " & fileP, vbHide
  12. End Function
  13. Private Function GetSetupPath(AppName As String)
  14. On Error Resume Next
  15. Dim Wsh As Object
  16. Set Wsh = CreateObject("Wscript.Shell")
  17. GetSetupPath = Wsh.regread("HKEY_LOCAL_MACHINE\Software" & "\Microsoft\Windows\CurrentVersion\App Paths" & AppName & "\Path")
  18. Set Wsh = Nothing
  19. End Function
复制代码



评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-1-11 07:28 | 显示全部楼层
感觉直接在当前路径下压缩和解压更方便一点,那样参数就不用带路径了。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-1-11 07:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
支持分享,学习一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-11 08:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2024-1-11 07:28
感觉直接在当前路径下压缩和解压更方便一点,那样参数就不用带路径了。

哈哈 对,我都没想到这样写

TA的精华主题

TA的得分主题

发表于 2024-1-11 10:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
没有winrar就Exit Function。。。winrar装机量应该不是很大。。。个人估计

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-11 11:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
morpheus126 发表于 2024-1-11 10:57
没有winrar就Exit Function。。。winrar装机量应该不是很大。。。个人估计

对,调用的winrar命令行 所以要有winrar软件,应用场景比较窄,比如面向特定用户开发的需要解压缩文件的工具里使用,来提示安装软件。
不用winrar也能操作,现在我只会压缩,写解压还不熟练,等哪天熟练了得空再分享不用winrar的解压缩方法

TA的精华主题

TA的得分主题

发表于 2024-6-6 08:47 | 显示全部楼层
GetSetupPath = Wsh.regread("HKEY_LOCAL_MACHINE\Software" & "\Microsoft\Windows\CurrentVersion\App Paths" & AppName & "\Path")这个?我装了winrar,但报错

TA的精华主题

TA的得分主题

发表于 2024-7-3 19:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ztj277702035 发表于 2024-6-6 08:47
GetSetupPath = Wsh.regread("HKEY_LOCAL_MACHINE\Software" & "\Microsoft\Windows\CurrentVersion\App Pa ...

GetSetupPath = Wsh.regread("HKEY_LOCAL_MACHINE\Software" & "\Microsoft\Windows\CurrentVersion\App Paths这里少个“\”  " & AppName & "\Path")
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 22:40 , Processed in 0.044364 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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