KB-Can't Create Scripting.Dictionary
Scripting.Dictionary源於Microsoft Scripting Runtime(\Windows\System32\scrrun.dll),是讓我有機會在VB6, VBScript使用Hashtable的救星。
我一直以為Scripting Runtime是所有Windows內建且必備的核心元件,今天才發現並不盡然...
寫了個VBA,在User的機器上一直出現ActiveX Component can't create object.(ActiveX元件無法產生物件)的錯誤訊息,開始我以為是裡面用到的MSXML2.XMLHttp30版本不存在,後來才發現其實錯在建立Scripting.Dictionary時,仔細檢查了一下專案參照,scrrun.dll好好地躺在Windows\System32目錄下,若非是Scripting Host的安裝損壞了嗎??
用regedit搜尋,沒看到Scripting.Dictionary的元件註冊機碼,已有重裝Scripting Host的心理準備。暫且先Goggle了一下,發現有人提到遇到Scripting.Dictionary或FileSystemObject建立失敗時,可以先跑一下regsvr32 scrrun.dll,試試也沒損失... 噹噹~~~ 註冊scrrun.dll後,功能就正常了。
【結論】大家如果遇到Scripting.*家族的物件無法建立時,記得先試試regsvr32 scrrun.dll,如果還不行,就乖乖重裝Scripting Host吧!
參考文章