vba - 告诉 VBA 查看 64 位注册表视图
问题描述
我想将一个分配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)”:
自动化错误
我发现CLSID存在于注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
Office 是 32 位的,Windows 是 64 位的。我不熟悉注册表,但从我所读到的内容看来,32 位 Office 正试图在某些 32 位 Windows 位置(视图)中找到 ArrayList,而它实际上位于 64 位位置。可以吗?如何让应用程序从正确的位置获取 ArrayList?
看来,要访问替代注册表视图,我应该以某种方式使用标志 KEY_WOW64_64KEY(值 0x0100),但我发现的示例太大而无法理解(eg1,eg2)。我不想编辑注册表数据,我只想告诉 VBA 我正在使用 64 位 Windows,所以我需要的对象是在它期望的其他地方找到的。
解决方案
推荐阅读
- ios - Swift AVFoundation 子类化 AVAsset
- sql-server - 为什么 Azure SQL Server 连接器在插入行时询问我具有默认值的列的值?
- react-native - React Native Maps - 显示UserLocation不起作用
- angular - 将参数传递给Angular服务中的函数(可观察对象)?
- ag-grid - api.getSelectedNodes() 不参考网格配置
- c - 如何将 .gcda 文件内容传输到另一个文件中?
- c++ - windows 使用 long int 就像在 32 位机器中一样,而在 64 位
- r - (MICE) 具有时间因素的数据集的缺失数据插补(纵向数据)
- html - 基于内容的php echo span样式颜色
- angularjs - 使用 ng-pattern 匹配密码会在 HTML 中公开密码