2012-10-11 62 views
5

由於某種原因,我最近將「MSXML2.DOMDocument」更改爲「MSXML2.DOMDocument40」。它在我的計算機中工作。但是相同的代碼在另一臺計算機中不起作用。 可能是什麼原因? 請建議一些答案。VBA:MSXML2.DOMDocument已更改爲MSXML2.DOMDocument40中的宏

+2

「不起作用」是什麼樣子? –

+0

@TimWilliams:對於錯誤的帖子,我真的很抱歉。這實際上工作正常。我不會刪除這篇文章,因爲下面的「Barrowc」已經提供了一些有用的信息。而且我沒有在這個網站上找到這篇文章。 – user1495475

回答

14

MSXML2.DOMDocument始終是MSXML2.DOMDocument30的代名詞。這對應於VBA中的「Microsoft XML,v3.0」引用的庫(msxml3.dll)

Microsoft建議開發人員在其應用程序中定位「Microsoft XML,v6.0」庫(msxml6.dll) 。這可以通過設置對該庫的引用然後使用適當的類型來完成 - 例如, MSXML2.DOMDocument60

如果使用V6.0庫是不可能的,那麼開發者應該回到屬於「微軟XML,V3.0」庫(MSXML3.DLL)來代替。

使用XML庫的任何其他版本,不推薦,因爲不能保證比V6.0和V3.0之外的任何版本將提供一個給定的系統上。您使用的MSXML2.DOMDocument40對應於「Microsoft XML,v4.0」庫(msxml4.dll),並且該代碼無法運行的計算機很可能沒有該庫可用。

有關詳情請參閱http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx

編輯:如果使用後期綁定,你可以找到相應的ProgID here。對於DOMDocument60,您將使用CreateObject("Msxml2.DOMDocument.6.0")

+0

:我很抱歉在我的代碼中有一個錯誤。實際上它工作正常,你是否建議不要使用「MSXML2.DOMDocument40」?因爲我要把文件放到其他系統中。當我在我的系統中搜索「msxml3.dll」,msxml4.dll,msxml6.dll等所有dll,我在C:\ Windows文件夾中找到了這些文件,並在其他文件夾中找到了這些文件。 – user1495475

+0

我會與微軟的建議,並只使用版本6.0(msxml6.dll)。如果這是不可能的,我會使用3.0版本。在任何情況下,我都不會使用版本4.0或5.0 – barrowc

相關問題