Импорт сбоев XML Excel - PullRequest
4 голосов
/ 16 июня 2009

У меня была эта повторяющаяся проблема со всеми моими электронными таблицами в течение нескольких месяцев. Электронная таблица будет работать нормально и импортирует XML-файлы, извлеченные с нашего веб-сайта, а затем при импорте внезапно будет зависать каждый раз. Единственное, что исправляет это - это взять все содержимое (листы, код, ссылки) и поместить их в новую рабочую книгу.

Это строка, на которой он падает.

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

У кого-нибудь была эта проблема? Если так, есть ли лучший способ предотвратить его падение?

Ответы [ 2 ]

5 голосов
/ 16 июня 2009

Я отправил этот вопрос после того, как нашел ответ только потому, что это было для меня таким бедствием, которое мучило меня в течение многих месяцев. Надеюсь, этот пост помешает кому-то еще вырвать их волосы, как я делал так долго.

Исправление довольно простое. Каждый раз, когда Excel импортирует XML-файл, он сохраняет XML-карту в этой электронной таблице. Поэтому, если вы используете одну и ту же электронную таблицу и продолжаете ее сохранять, они со временем накапливаются. Лучшее решение, которое я нашел, это просто удалить эти xml-карты или использовать одну и ту же (много раз последняя не очень хорошая).

Вот код для удаления всех из них (я просто запускаю его перед кодом, который я включил в свой вопрос):

Dim XmlMap as XmlMap
    For Each XmlMap In ActiveWorkbook.XmlMaps
        XmlMap.Delete
    Next
0 голосов
/ 16 июня 2009

Есть ли вероятность, что во входном XML есть недопустимые / неэкранированные символы?

...