如何从vba中的档案打开文件,而不解压缩档案

我有一系列的档案:C:/archive1.zip,C:/archive2.zip等

我想从每个档案只提取一个文件。 每个档案具有相同的结构和文件可以在下面find:

C:/archive1.zip/folderlevel1/folderlevel2/folderlevel3/Myfile.csv C:/archive2.zip/folderlevel1/folderlevel2/folderlevel3/Myfile.csv

等等

我怎样才能读取vba中的所有文件Myfile.csv?

谢谢!

你可以这样做:

' ' UnZip 1 file from a zip file: ' Function entUnZip1File(ByVal strZipFilename, ByVal strDstDir, _ ByVal strFilename) ' Const glngcCopyHereDisplayProgressBox = 256 ' Dim intOptions, objShell, objSource, objTarget ' ' Create the required Shell objects Set objShell = CreateObject("Shell.Application") ' ' Create a reference to the files and folders in the ZIP file Set objSource = _ objShell.NameSpace(strZipFilename).Items.item(CStr(strFilename)) ' ' Create a reference to the target folder Set objTarget = objShell.NameSpace(strDstDir) ' intOptions = glngcCopyHereDisplayProgressBox ' ' UnZIP the files objTarget.CopyHere objSource, intOptions ' ' Release the objects Set objSource = Nothing Set objTarget = Nothing Set objShell = Nothing ' entUnZip1File = 1 ' End Function 

而在你的macros的任何地方,调用函数将文件解压缩到C:\ temp目录或任何目标文件夹而不是C:\ temp:

 entUnZip1File "C:\archive1.zip", "C:\temp", "folderlevel1/folderlevel2/folderlevel3/Myfile.csv"