Pregunta

He tenido este problema recurrente con todas mis hojas de cálculo durante meses. La hoja de cálculo funcionará bien e importará los archivos xml obtenidos de nuestro sitio web, y de repente comenzará a fallar cada vez que se importe. Lo único que lo soluciona es tomar todos los contenidos (hojas, códigos, referencias) y colocarlos en un libro nuevo.

Esta es la línea en la que se bloquea.

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

¿Alguien ha tenido este problema? Si es así, ¿hay una mejor manera de evitar que se bloquee?

¿Fue útil?

Solución

Publiqué esta pregunta después de encontrar la respuesta solo porque fue un desastre para mí y me había atormentado durante meses. Con suerte, esta publicación evitará que alguien más se quite el pelo como lo hice durante tanto tiempo.

La solución es bastante simple. Lo que sucede es que cada vez que Excel importa un archivo xml, almacena un mapa xml en esa hoja de cálculo. Entonces, si usa la misma hoja de cálculo y sigue guardándola, éstas se acumulan con el tiempo. La mejor solución que he encontrado es simplemente eliminar estos mapas XML o reutilizar el mismo (esta última no es una buena opción muchas veces).

Aquí hay un código para eliminarlos todos (simplemente ejecuto esto antes del código que incluí en mi pregunta):

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

Otros consejos

¿Existe la posibilidad de que el XML de entrada tenga algunos caracteres ilegales / no escapados?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top