Импорт сбоев XML Excel
-
05-07-2019 - |
Вопрос
У меня была эта повторяющаяся проблема со всеми моими электронными таблицами в течение нескольких месяцев. Электронная таблица будет работать нормально и импортирует XML-файлы, извлеченные с нашего веб-сайта, а затем при импорте внезапно будет зависать каждый раз. Единственное, что исправляет это - это взять все содержимое (листы, код, ссылки) и поместить их в новую рабочую книгу.
Это строка, на которой он падает.
ActiveWorkbook.XmlImport URL:=l_strXMLFileName, _
ImportMap:=Nothing, Destination:=Sheets("Imported Data").Range("$A$1")
У кого-нибудь была эта проблема? Если так, есть ли лучший способ предотвратить его падение?
Решение
Я опубликовал этот вопрос после того, как нашел ответ только потому, что это было для меня таким бедствием, которое мучило меня в течение многих месяцев. Надеюсь, этот пост не позволит кому-то еще вырвать волосы, как я делал так долго.
Исправление довольно простое. Каждый раз, когда Excel импортирует XML-файл, он сохраняет XML-карту в этой электронной таблице. Поэтому, если вы используете одну и ту же электронную таблицу и продолжаете ее сохранять, они со временем накапливаются. Лучшее решение, которое я нашел, это просто удалить эти карты xml или повторно использовать одну и ту же (много раз последняя не подходит).
Вот код для удаления всех из них (я просто запускаю его перед кодом, который я включил в свой вопрос):
Dim XmlMap as XmlMap
For Each XmlMap In ActiveWorkbook.XmlMaps
XmlMap.Delete
Next
Другие советы
Есть ли вероятность, что во входном XML есть недопустимые / неэкранированные символы?