安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假

VBA调用RAR软件实现Excel自动压缩和解压功能

2017-09-08 22:47:00
网络摘录
转贴
4021

Excel VBA高级编程:VBA控制RAR软件实现Excel自动压缩和解压功能

 


网友们可能用过VBA来实现压缩文件,其实就是VBA利用WINRAR的一些命令通过 SHELL这个函数来实现!
先?#27425;?#22823;家说说Shell函数:
Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。(这个函数也可以在VBA中使用。)
Shell的语法是:Shell(PathName[,WindowStyle])。
PathName:为必需参数。类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变量,也可以包括路径名。
WindowStyle:为可选参数。Integer类型,指定在程序运行时窗口的样式。WindowStyle有以下这些值。
常量值 描述
VbHide  0  窗口被隐藏,且?#27807;?#20250;移到隐式窗口。
VbNormalFocus  1  窗口具有?#27807;悖?#19988;会还原到它原来的大小和位置。
VbMinimizedFocus  2  窗口会以一个具有?#27807;?#30340;图标来显示(缺省值)。
VbMaximizedFocus  3  窗口是一个具有?#27807;?#30340;最大化窗口。
VbNormalNoFocus  4  窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus  6  窗口会以一个图标来显示,而当前活动的窗口仍然保持活动。
再介绍下所需要结合运用的WinRar的用法
主要介绍以下如何在WinRar中用命令行来压缩和解压缩文件?
压缩:WINRAR A [-switches] [Files] [@Filelists]
例如你想把Test.mdb压缩到C盘下,可以WINRAR A C:\try.rar C:\Test.mdb
解压缩:如果带目录解压缩
WINRAR X [-switches] [Files] [@Filelists] [destionationfolder]
如果在当前目录解压缩,即解压缩时不写目录名
WINRAR E [-switches] [Files] [@Filelists] [destionationfolder]
例如你想把try.rar解压缩到C盘下,可以WINRAR X C:\try.rar C:\Test.mdb
最后以一个实际例子给大家一个参考
在VBA中新建一个模块,在模块中添加两个子程序压缩文件和解压缩文件。
压缩文件子程序是把文件Test.mdb压缩成try.rar。

Sub 压缩文件()
Dim Rarexe As String 'WINRAR执行文件的位置
Dim Source As String '压缩前的原始文件
Dim Target As String '压缩后的目标文件
Dim FileString As String 'Shell指令中的?#22336;?#20018;
Dim Result As Long
Rarexe = "C:\program files\winrar\winrar"
Source = "C:\Test.mdb"
Target = "C:\try.rar"
FileString = Rarexe & " a " & Target & " " & Source
Result = Shell(FileString, vbHide)
End Sub

解压的过程类似,解压缩文件子过程是把try.rar解压生成Test.mdb。在执行了上面的压缩过程后,可以删除文件Test.mdb,来解压缩重新生成Test.mdb。
Sub 解压缩文件()
Dim Rarexe As String 'WINRAR执行文件的位置
Dim Source As String '解压缩前的原始文件
Dim Target As String '解压缩后的目标文件
Dim FileString As String 'Shell指令中的?#22336;?#20018;
Dim Result As Long
Rarexe = "C:\program files\winrar\winrar"
Source = "C:\try.rar"
Target = "C:\Test.mdb"
FileString = Rarexe & " X " & Source & " " & Target
Result = Shell(FileString, vbHide)
End Sub



分享
? 1999-2019 Office交流网?? 中山市天鸣科技发展有限公司 粤ICP备10043721号-5 SQL查询:18
内存占用:7.75MB
PHP 执行时间:0.18
双色球大奖2000年
安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假
跳跳猫猫送彩金 开心假期海报 北京pk10高手计划群 丧尸来袭游戏 快3走势图qq 北京pk10每天开奖时间 探陵人彩金 pk10百分百准计划 大乐透走势图带连线图 宝石女王游戏