Domanda

Ho avuto questo problema ricorrente con tutti i miei fogli di calcolo per mesi. Il foglio di lavoro funzionerà correttamente e importerà i file xml recuperati dal nostro sito Web, quindi all'improvviso inizierà a bloccarsi ogni volta durante l'importazione. L'unica cosa che lo risolve è prendere tutti i contenuti (fogli, codice, riferimenti) e rilasciarli in una nuova cartella di lavoro.

Questa è la linea su cui si arresta in modo anomalo.

ActiveWorkbook.XmlImport URL:=l_strXMLFileName, _
ImportMap:=Nothing, Destination:=Sheets("Imported Data").Range("$A$1")

Qualcuno ha avuto questo problema? In tal caso, esiste un modo migliore per evitare che si blocchi ??

È stato utile?

Soluzione

Ho pubblicato questa domanda dopo aver trovato la risposta solo perché era un disastro per me e mi aveva afflitto per mesi. Spero che questo post impedirà a qualcun altro di strapparsi i capelli come ho fatto per così tanto tempo.

La correzione è piuttosto semplice. Quello che succede è ogni volta che Excel importa un file xml, memorizza una xmlmap in quel foglio di calcolo. Quindi, se usi lo stesso foglio di calcolo e continui a salvarlo, questi si accumulano nel tempo. La migliore soluzione che ho trovato è semplicemente eliminare queste mappe xml o riutilizzare la stessa (quest'ultima non è una buona opzione molte volte).

Ecco un codice per eliminarli tutti (ho appena eseguito questo prima del codice che ho incluso nella mia domanda):

Dim XmlMap as XmlMap
    For Each XmlMap In ActiveWorkbook.XmlMaps
        XmlMap.Delete
    Next

Altri suggerimenti

È possibile che l'XML di input abbia alcuni caratteri illegali / senza caratteri di escape?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top