【发布时间】:2019-09-06 18:57:00
【问题描述】:
我无法在我尝试编写的 Excel 宏中创建任何对象。最初我尝试使用 MSXML2.DOMDocument60,但是,我意识到我无法让 ActiveX 创建任何对象。例如,对于这行代码,我得到了相同的错误(Run-time 429 'ActiveX component can't create object'):
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
显然,因为我在 excel 中,程序安装正确,它应该可以访问它。我已经为此检查了其他几个 Stackoverflow 页面。引用似乎不是问题,我无法想象上面的简单代码由于缺少 dll 而无法工作,因为我又已经在 Excel 中了。
我的计算机上是否有可能阻止此操作的安全功能?
同样,我的问题不在于上面的代码。这只是表明 Create 对象不起作用的一种简单方法。
我的主要目标是让以下工作: 将 objXML 调暗为 MSXML2.DOMDocument60 设置 objXML = CreateObject("MSXML2.DOMDocument60")
我已经确认我有正确的参考并重新注册了 Dll。
【问题讨论】:
-
Excel 工作表对象要求您“附加”到现有工作表,无论它是工作簿中已经存在的工作表还是您新创建的工作表。所以使用类似
Dim thisWS as Worksheet; Set thisWS = ThisWorkbook.Sheets("Sheet1") -
嗨,彼得。谢谢您的答复。不幸的是,这并没有解决我的问题。上面的代码只是一个例子。真正的问题是,每当我使用“CreateObject”时,我似乎都会被阻止,我不知道为什么。我在尝试为 word 文档创建对象时遇到了同样的问题: Dim oWordApp As Word.Application Set oWordApp = CreateObject("Word.Application")
-
您使用的是 Mac 吗?
-
嗨蒂姆。不,我使用的是 64 位操作系统的 Windows 10 机器。我使用的 excel 版本是 Microsoft 2016,它是 32 位的。
-
如果您在 Excel 中,为什么要后期绑定
ExcelSheet?类型库已经被引用了,你有没有试过看看当你做Set ExcelSheet = New Excel.Worksheet时会发生什么?