How to open a file from an archive in vba without unzipping the archive

前端 未结 1 689
无人及你
无人及你 2020-12-10 17:36

I have a serie of archives : C:/archive1.zip, C:/archive2.zip, etc.

I want to extract only one file from each archive. Each archive has same structure and file can f

相关标签:
1条回答
  • 2020-12-10 17:44

    You can do it as this:

    '
    ' 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
    

    And any where in your macro, call the function to extract the file into C:\temp directory or to any destination folder instead of C:\temp:

    entUnZip1File "C:\archive1.zip", "C:\temp", "folderlevel1/folderlevel2/folderlevel3/Myfile.csv"
    
    0 讨论(0)
提交回复
热议问题