Hi,

So I found a piece of VBA code online which should zip a file.
This is the code:

 Sub ZipFile(strZipFilePath As String, strZipFileName As String, ParamArray arrFiles() As Variant)
 
    Dim intLoop         As Long
 
    Dim i               As Integer
 
    Dim objApp          As Object
 
    Dim vFileNameZip
 
 
 
    If Right(strZipFilePath, 1) <> Application.PathSeparator Then
 
        strZipFilePath = strZipFilePath & Application.PathSeparator
 
    End If
 
    vFileNameZip = strZipFilePath & strZipFileName & ".zip"
 
 
 
    If IsArray(arrFiles) = False Then GoTo ExitH
 
 
 
'-------------------Create new empty Zip File-----------------

    If Len(Dir(vFileNameZip)) > 0 Then Kill vFileNameZip
 
    Open vFileNameZip For Output As #1
 
    Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
 
    Close #1
 
'=============================================================

    Set objApp = CreateObject("Shell.Application")
 
    i = 0
    

    For intLoop = LBound(arrFiles) To UBound(arrFiles)
 
        'Copy file to Zip folder/file created above

        i = i + 1
 
        objApp.Namespace(vFileNameZip).CopyHere arrFiles(intLoop)
        
        'Wait until Compressing is complete

        On Error Resume Next
 
        Do Until objApp.Namespace(vFileNameZip).Items.Count = i
 
            Application.Wait (Now + TimeValue("0:00:01"))
 
        Loop
 
        On Error GoTo 0
 
 
    Next intLoop
 
ExitH:
 
    Set objApp = Nothing
 
End Sub

The parameters of the function are set to

Capture.PNG


But when I run the code, it is keep looping over this part

Do Until objApp.Namespace(vFileNameZip).Items.Count = i
 
     Application.Wait (Now + TimeValue("0:00:01"))
 
Loop

Anyone know why?