我的所有电子表格都反复出现这个问题已有几个月了。该电子表格可以正常工作,并且可以导入从我们的网站获取的xml文件,然后突然在每次导入时它将开始崩溃。解决此问题的唯一方法是将所有内容(工作表,代码,参考)放入新的工作簿中。

这是它崩溃的那条线。

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

有人遇到过这个问题吗?如果是这样,是否有更好的方法来防止它崩溃?

最佳答案

找到答案后,我就发布了这个问题,只是因为这对我来说是一场灾难,困扰了我几个月。希望这篇文章能阻止别人像我这么长时间那样拔头发。

解决方法非常简单。发生的情况是,每次excel导入xml文件时,它都会在该电子表格中存储一个xmlmap。因此,如果您使用相同的电子表格并继续保存,则这些电子表格会随着时间的推移而累积。我发现的最佳解决方案是只删除这些xml映射,或重用相同的xml映射(后者在很多时候都不是一个好选择)。

这是一些删除所有代码的代码(我只是在问题中包含的代码之前运行此代码):

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

08-05 06:06