Excel精英培训网

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

[VBA] 利用VBA与WinRAR来压缩文件

  [复制链接]
发表于 2011-2-16 09:18 | 显示全部楼层 |阅读模式
整个过程就是利用WinRAR的压缩命令来完成,而在VBA中利用Shell函数来运行这个命令,具体介绍如下:
一、Shell函数
    Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。(PS:这个函数也可以在VBA中使用。)
    Shell的语法是:Shell(PathName[,WindowStyle])。
    PathName:为必需参数。类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变量,也可以包括路径名。
    WindowStyle:为可选参数。Integer类型,指定在程序运行时窗口的样式。WindowStyle有以下这些值。
    常量值 描述
    VbHide  0  窗口被隐藏,且焦点会移到隐式窗口。
    VbNormalFocus  1  窗口具有焦点,且会还原到它原来的大小和位置。
    VbMinimizedFocus  2  窗口会以一个具有焦点的图标来显示(缺省值)。
    VbMaximizedFocus  3  窗口是一个具有焦点的最大化窗口。
    VbNormalNoFocus  4  窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
    VbMinimizedNoFocus  6  窗口会以一个图标来显示,而当前活动的窗口仍然保持活动。
二、关于WinRar的用法
    主要介绍以下如何在WinRar中用命令行来压缩和解压缩文件?
  压缩:WINRAR A [-switches] [Files] [@Filelists]
  例如你想把try.mdb压缩到C盘下,可以WINRAR A C:\try.rar C:\try.mdb
      解压缩:如果带目录解压缩
  WINRAR X [-switches] [Files] [@Filelists] [destionationfolder]
  如果在当前目录解压缩,即解压缩时不写目录名
  WINRAR E [-switches] [Files] [@Filelists] [destionationfolder]
  例如你想把try.rar解压缩到C盘下,可以WINRAR X C:\try.rar C:\try.mdb
三、压缩与解压的实例
  在VBA中新建一个模块,在模块中添加两个子程序压缩文件和解压缩文件。
      压缩文件子程序是把文件try.mdb压缩成try.rar。
游客,如果您要查看本帖隐藏内容请回复


  解压的过程类似,解压缩文件子过程是把try.rar解压生成try.mdb。在执行了上面的压缩过程后,可以删除文件try.mdb,来解压缩重新生成try.mdb。
游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 1 +2 收起 理由
nothingwmm + 2 反正你不缺积分

查看全部评分

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

我来喽,楼主在来个批量解压文件的代码学习下啥。

{:1112:}{:1112:}{:1112:}{:1112:}{:1112:}{:1112:}{:1112:}{:1112:}{:1112:}
回复

使用道具 举报

 楼主| 发表于 2011-2-16 09:46 | 显示全部楼层
回复

使用道具 举报

发表于 2011-2-16 10:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2011-2-16 10:29 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-2-16 10:43 编辑
轩辕轼轲 发表于 2011-2-16 09:46
回复 nothingwmm 的帖子

压缩解压的都有哈


我说的重点是 批量!
回复

使用道具 举报

发表于 2011-2-16 11:08 | 显示全部楼层
这东西好像挺有用的。支持楼主
回复

使用道具 举报

 楼主| 发表于 2011-2-16 11:15 | 显示全部楼层
回复 nothingwmm 的帖子

哈哈,这个简单,用dir函数再循环一下就可以了
回复

使用道具 举报

发表于 2011-2-16 11:26 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-2-16 11:38 编辑
轩辕轼轲 发表于 2011-2-16 11:15
回复 nothingwmm 的帖子

哈哈,这个简单,用dir函数再循环一下就可以了

版主有时间写出来完整的代码吧。谢谢

相关连接:
VBA自解压zip档的程式
http://space.excelpx.com/forum.php?mod=viewthread&tid=159983&fromuid=420007

回复

使用道具 举报

发表于 2011-2-16 15:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2011-2-16 16:18 | 显示全部楼层
支持楼主支持楼主
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 21:29 , Processed in 0.328401 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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