Excel精英培训网

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

[分享] 借助RAR使用Excel批量压缩指定目录下的文件

[复制链接]
发表于 2011-2-17 11:41 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2012-11-5 19:00 编辑

前面我发过一个帖子,介绍如何通过Shell使用RAR来压缩文件。
帖子地址:利用VBA与WinRAR来压缩文件
http://www.excelpx.com/forum.php?mod=viewthread&tid=159899&fromuid=390587
有朋友在回帖中问如何批量压缩文件,现在我就再发一段代码,实现指定目录下的文件批量压缩。
[hide]


  1. Sub 用RAR压缩文件()
  2.         '轩辕轼轲编写
  3.         Rarexe = "C:\program files\winrar\winrar"  'RAR的路径
  4.         SourcePath = "C:\Test"                    '需要压缩的文件的目录
  5.         TargetPath = "C:\Result"                  '压缩结果的存放目录
  6.         Temp = Dir(SourcePath & "*.*")             '取文件目录下的文件列表
  7.         Do While Len(Temp)   '开始循环
  8.                Target = TargetPath & Split(Split(Temp, "")(UBound(Split(Temp, ""))), ".")(0) & ".RAR"  
  9.                '目标文件
  10.                Source = SourcePath & Temp
  11.               '源文件
  12.                FileString = Rarexe & " a -ep1" & Target & " " & Source     
  13.               '生成压缩命令字符串
  14.                Result = Shell(FileString, vbHide)                     
  15.               '用Shell执行压缩
  16.                Temp = Dir
  17.                '获取下一个文件
  18.         Loop    '循环标记
  19.         '注意:文件名称中不能包含空格、﹟、★之类的特殊符号,否则RAR会压缩失败
  20. End Sub
复制代码
[/hide
]

评分

参与人数 1 +12 收起 理由
nothingwmm + 12

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-2-17 12:12 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-2-17 12:17 编辑

谢谢车车的代码
Target = TargetPath & Split(Split(Temp, "\")(UBound(Split(Temp, "\"))), ".")(0) & ".RAR"
有点难懂这句。
回复

使用道具 举报

发表于 2011-2-17 12:58 | 显示全部楼层
顶贴拿分 自力更生 等下发新帖 大家来帮忙
回复

使用道具 举报

发表于 2011-2-17 13:06 | 显示全部楼层
学习车版的代码
不知道能不能看懂
回复

使用道具 举报

 楼主| 发表于 2011-2-17 13:59 | 显示全部楼层
nothingwmm 发表于 2011-2-17 12:12
谢谢车车的代码
Target = TargetPath & Split(Split(Temp, "\")(UBound(Split(Temp, "\"))), ".")(0) & " ...

这句就是把文件的名字取出来。
比如:C:\Text\测试.xls    把测试两个字从路径里面提取出来。呵呵。

评分

参与人数 1 +9 收起 理由
nothingwmm + 9 谢谢

查看全部评分

回复

使用道具 举报

发表于 2011-2-18 21:18 | 显示全部楼层
轩辕轼轲 发表于 2011-2-17 13:59
这句就是把文件的名字取出来。
比如:C:\Text\测试.xls    把测试两个字从路径里面提取出来。呵呵。

哈哈 终于看懂了 split了半天
回复

使用道具 举报

发表于 2011-2-20 08:10 | 显示全部楼层
看看呢{:011:}
回复

使用道具 举报

发表于 2011-10-3 19:28 | 显示全部楼层
study  hard   !!
回复

使用道具 举报

发表于 2012-5-10 22:25 | 显示全部楼层
studying thx看看先
回复

使用道具 举报

发表于 2012-7-27 09:05 | 显示全部楼层
不知道能不能实现我想要的。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 00:44 , Processed in 0.399588 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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