2014-02-12 88 views
3

我寫了一個VBA宏來加載和解析XML文件。這個確切的代碼已經運行良好一段時間,但現在它不再運作。我在運行Excel 2013 64位的兩臺不同計算機上測試過它。它失敗的代碼如下:MSXML2.DOMDocument60崩潰Excel

Public Sub RunClashImport() 
'This subroutine will import an XML clash report, parse it, and write it to our workbook 
Dim iRow As Integer 

'Get XML file 
Dim xmlFile As MSXML2.DOMDocument60 
Set xmlFile = New MSXML2.DOMDocument60 

如果我註釋掉Set命令,代碼會繼續。它不會拋出錯誤,它會完全崩潰Excel。上面的代碼是宏啓動的地方,沒有代碼在它之前運行。我設置了一個參考MSXML

enter image description here

+0

你有沒有嘗試取消註冊/註冊DLL? REGSVR32 MSXML6.DLL/U REGSVR32 MSXML6.DLL –

+0

怎麼回合測試一個沒有運行64位的計算機?在64位的機會下,我想檢查32臺機器。我知道有一些事情,64位的/不支持 – user1759942

+0

@ user1759942這是64位版本的Office而不是Windows導致的問題。 – 2014-02-19 08:10:10

回答

1

的V6.0對於64位Windows操作系統,你應該把你的msxml6.dll的C:\Windows\SysWOW64內,然後從該位置註冊,在運行此命令你命令提示符regsvr32.exe C:\Windows\SysWOW64\msxml6.dll

確保您以管理員身份運行命令提示符。

+0

msxml6.dll已經位於C:\ Windows \ SysWOW64中。重新註冊並不能解決問題。 – Bishop

+1

@Bishop,對,但現在你需要去Excel,刪除對Microsoft XML,v6的引用,執行瀏覽並指向SysWOW64中的msxml6,然後選擇它,確保在選擇時指定C:\ Windows \ Syswow64資料\ msxml6.dll。 –