VBA处理压缩文件示例
在Excel中有时需要对压缩文件进行处理,如从网上下载了一个压缩文件之后(如何通过VBA从网上下载文件),需要解压到某个文件夹,如Rar和7Zip等压缩文件时需要用到压缩程序的CommandLine语句,这样需要本地机器安装有相应的压缩程序。而对于一般的Zip文件和Cab文件,可以使用Windows自带的压缩程序来处理,VBA通过创建Shell.Application对象来完成处理压缩文件的功能。这里水文工具集介绍一个VBA处理压缩文件的示例,具体源文件如下:
Sub Unzip_Ex()
Dim FSO As Object
Dim oApp As Object
Dim Fname As Variant
Dim FileNameFolder As Variant
Dim DefPath As String
Dim strDate As String
Fname = Application.GetOpenFilename _
(filefilter:="Zip Files (*.zip), *.zip", _
MultiSelect:=False)
If Fname = False Then
' do nothing
Else
' 新文件夹的根目录
' 你也可以使用 DefPath = "C:\Users\HUP\test\"
DefPath = Application.DefaultFilePath
If Right(DefPath, 1) <> "\" Then
DefPath = DefPath & "\"
End If
' 创建新的文件夹名称
strDate = Format(Now, " dd-mm-yy h-mm-ss")
FileNameFolder = DefPath & "MyUnzipFolder " & strDate & "\"
' 在DefPath下创建文件夹
MkDir FileNameFolder
' 将文件解压到新创建的文件夹下
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(Fname).items
' 如果你只需要解压一个文件,可以使用:
'oApp.Namespace(FileNameFolder).CopyHere _
'oApp.Namespace(Fname).items.Item("test.txt")
MsgBox "You find the files here: " & FileNameFolder
On Error Resume Next
Set FSO = CreateObject("scripting.filesystemobject")
FSO.deletefolder Environ("Temp") & "\Temporary Directory*", True
End If
End Sub


