› Sviluppare funzionalita su Microsoft Office con VBA › Leggi ZIP
-
AutoreArticoli
-
Ciao a tutti, non riesco capire dove sbaglio.
Ho trovato questo codice in rete che visualizza tutti i files all'interno di un ZIP che funziona bene. Ora vorrei togliere la riga >>>PathFilename = Application.GetOpenFilename("ZipFiles (*.zip), *.zip") e passargli una variabile-scritta. Mà a questo punto ho un errore sulla riga >>> For Each FileNameInZip In oapp.Namespace(PathFilename).Items
Conoscete il motivo? Grazie milleSub ListZipDetails() Dim R As Long, PathFilename As Variant, FileNameInZip As Variant, oapp As Object 'PathFilename = "C:\Users\Lello\Desktop\Casarile\Noviglio.zip" PathFilename = Application.GetOpenFilename("ZipFiles (*.zip), *.zip") If PathFilename = "False" Then Exit Sub R = 2 Set oapp = CreateObject("Shell.Application") For Each FileNameInZip In oapp.Namespace(PathFilename).Items 'Cells(R, "C").Value = FileNameInZip 'Cells(R, "A").Value = PathFilename 'R = R + 1 MsgBox FileNameInZip Next Set oapp = Nothing End SubIl motivo non lo conosco per il semplice fatto che non hai detto che errore riscontri.
Senza sfera di cristallo quello che ti posso dire è che la macro, utilizzata con una cartella contenente un file zippato valido (trascritto direttamente nel codice), funziona correttamente.
Ciao rollis13, giusto non ho detto l'errore
"Errore di runtime 91, variabile oggetto o oggetto del blocco With non impostata"Se scelgo il files tramite Application.GetOpenFilename...è tutto OK
La variabile diventa >>> PathFilename = "C:\Users\Lello\Desktop\Casarile\Noviglio.zip".
Mà dovrei eseguire questo codice in un cicloZipnome = Dir$(Spath & "*.zip")
Do While Zipnome <> ""
...
Zipnome = Dir$()
LoopA parte il Dir$(Spath & "*.zip"), non posso fargli aprire Application.GetOpenFilename... ogni volta
Volevo valorizzarla tramite codice, comunque anche se "assegno la variabile manualmente"
PathFilename = "C:\Users\Lello\Desktop\Casarile\Noviglio.zip", và in errore sulla riga
>>>For Each FileNameInZip In oapp.Namespace(PathFilename).ItemsCosì andrebbe meglio:
`Option Explicit Sub ListZipDetails() Dim R As Long, PathFilename As Variant, FileNameInZip As Variant, oapp As Object Dim ZipNome PathFilename = "C:\Users\Lello\Desktop\Casarile\" 'R = 2 Set oapp = CreateObject("Shell.Application") ZipNome = Dir$(PathFilename & "*.zip") Do While ZipNome <> "" For Each FileNameInZip In oapp.Namespace(PathFilename & ZipNome).Items 'Cells(R, "C").Value = FileNameInZip 'Cells(R, "A").Value = PathFilename & ZipNome 'R = R + 1 MsgBox FileNameInZip Next ZipNome = Dir$() Loop Set oapp = Nothing End Sub`Grazie infinite
Scusami tanto, mi sono appena accorto dell'errore (sono rimbambito), scrivevo..
>>> PathFilename = "C:\Users\Lello\Desktop\Casarile\Noviglio.zip" invece era
PathFilename = "C:\Users\Lello\Desktop\Noviglio\Noviglio.zip"
-
AutoreArticoli
