Excel–VBA压缩多文件及文件夹(excel880.com)

2015年10月1日14:25:24 1 10,364 views
微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com

前阵子做个项目要频繁压缩文件,到处找压缩文件的代码总没找到合适的,只好自己动手了 
本过程实现调用系统安装的winrar软件完成压缩多文件及文件夹功能 
其实际效果等同与在文件夹里选择多个文件及文件夹后右键压缩功能
本代码最大的好处是压缩文件夹时不会带根目录  非常适用于文件及文件夹混合压缩
可指定压缩后目录

得到帮助你请动动手指  打开 Excel880淘宝店 给我的小店加个收藏 
若想看到更多  
请移步本人作品集合 总能找到你有用的 Excel880作品集

代码如下

'****VBA压缩文件********Copyright@2015 www.excle880.com**************************************
'*将filelist文件或文件夹列表压缩到rarname文件中 注意都是用绝对路径 filelist之间逗号分隔
'*eg. E8_RarFiles "D:\Documents\Desktop\2.rar", "D:\Documents\Desktop\2\2,D:\Documents\Desktop\2\1.txt"
'****作者:百度不到去谷歌 QQ80871835  *******************************************************
Sub E8_RarFiles(rarname, filelist)
    Dim Source As String '压缩前的原始文件
    Dim Target As String '压缩后的目标文件
    Dim cmdstr As String 'Shell指令中的字符串
    Dim Rarexe As String 'WINRAR执行文件的位置
    Dim arr, dic, i, n, k, iitem, ks
    Rarexe = "C:\program files\winrar\winrar"
    arr = Split(filelist, ",")
    Set dic = CreateObject("scripting.dictionary")
    For i = 0 To UBound(arr)
        n = InStrRev(arr(i), "\")
        k = Left(arr(i), n - 1)
        iitem = """" & Mid(arr(i), n + 1) & """"
        dic(k) = dic(k) & " " & iitem
    Next
    ks = dic.keys
    rarname = """" & rarname & """" '空格路径 加双引号
    For i = 0 To dic.Count - 1
        ChDrive ks(i)
        ChDir ks(i)
        Source = dic(ks(i))
        cmdstr = Rarexe & " a " & rarname & " " & Source
        Shell cmdstr, vbHide
    Next
End Sub
Private Sub Test()
    Dim i&, j&, k&, arr, brr, s
    s = ThisWorkbook.Path & "\"
    E8_RarFiles s & "test.rar", s & "1.txt," & s & "2.txt," & s & "1 2 3"
End Sub

附件下载(密码:WTE6)

表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

评论已关闭!

目前评论:1   其中:访客  1   博主  0

    • excel880 0

      测试回复