我想为变量分配ArrayList
。
Sub Create_ArrayList()
Dim arrL As Object
'Creating an ArrayList, option 1 - fails
Set arrL = CreateObject("System.Collections.ArrayList")
'Creating an ArrayList, option 2 - fails
Set arrL = GetObject("New:{6896B49D-7AFB-34DC-934E-5ADD38EEEE39}")
End Sub
两个选项均失败:
运行时错误'-2146232576(80131700)':
自动化错误
我发现HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
的注册表中存在CLSID。
Office是32位的,而Windows是64位的。我对注册表不熟悉,但是从我阅读的内容来看,似乎32位Office试图在某些32位Windows位置(视图)中查找ArrayList,而实际上是在64位位置。可以吗?如何使应用程序从正确的位置获取ArrayList?
看来,要访问alternative registry view,我应该以某种方式使用标志KEY_WOW64_64KEY(值0x0100),但是我发现的示例太大了,无法理解(eg1,eg2 )。我不想编辑注册表数据,我只想告诉VBA我正在使用64位Windows,因此可以在所需的其他地方找到我需要的对象。