Importazione XML arresti anomali Excel
-
05-07-2019 - |
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 ??
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?