VBA 无法创建新的 CXMLHTTPHandler
VBA cannot create new CXMLHTTPHandler
由于某些宏在 Excel 2013 年无法正常工作而在 2010 年工作正常时,我目前正在处理后期绑定。显然,2010 年使用 14.0 对象库,而 2013 年使用 15.0.
Dim myHttpRequest As Object
Dim myHttpHandler as Object
Set myHttpRequest = CreateObject("MSXML2.XMLHTTP")
Set myHttpHandler = CreateObject("CXMLHTTPHandler")
这会产生 ActiveX 无法创建对象错误。我花了一天多的时间研究这个。
是否必须添加某种资源才能使这些对象工作? Excel 的 15.0 对象库中是否存在这些对象?
我完全不知道该怎么做,因为这通常有效。
我强烈怀疑,看这个posthttp://dailydoseofexcel.com/archives/2006/10/09/async-xmlhttp-calls/
您正在处理用户定义的 class。如果是这种情况,您需要复制 class,按照 link 中概述的步骤操作,然后简单地创建 class 的新实例,而无需后期绑定不涉及图书馆。
如果早期绑定引用了其他库,则另一个步骤是根据需要将 class 中的代码转换为后期绑定。
据此 link:
Dim MyXmlHttpHandler As CXMLHTTPHandler
' Create an instance of the wrapper class.
Set MyXmlHttpHandler = New CXMLHTTPHandler
引用 link 的附加步骤是:
- 将
CXMLHTTPHandler
class 导出并删除到已知目录
- 用记事本打开那个文件
- 找到
OnReadyStateChange
子,在签名后面加上这段文字:Attribute OnReadyStateChange.VB_UserMemId = 0
- 保存、关闭并重新导入 class 模块到项目中
由于某些宏在 Excel 2013 年无法正常工作而在 2010 年工作正常时,我目前正在处理后期绑定。显然,2010 年使用 14.0 对象库,而 2013 年使用 15.0.
Dim myHttpRequest As Object
Dim myHttpHandler as Object
Set myHttpRequest = CreateObject("MSXML2.XMLHTTP")
Set myHttpHandler = CreateObject("CXMLHTTPHandler")
这会产生 ActiveX 无法创建对象错误。我花了一天多的时间研究这个。
是否必须添加某种资源才能使这些对象工作? Excel 的 15.0 对象库中是否存在这些对象?
我完全不知道该怎么做,因为这通常有效。
我强烈怀疑,看这个posthttp://dailydoseofexcel.com/archives/2006/10/09/async-xmlhttp-calls/
您正在处理用户定义的 class。如果是这种情况,您需要复制 class,按照 link 中概述的步骤操作,然后简单地创建 class 的新实例,而无需后期绑定不涉及图书馆。
如果早期绑定引用了其他库,则另一个步骤是根据需要将 class 中的代码转换为后期绑定。
据此 link:
Dim MyXmlHttpHandler As CXMLHTTPHandler
' Create an instance of the wrapper class.
Set MyXmlHttpHandler = New CXMLHTTPHandler
引用 link 的附加步骤是:
- 将
CXMLHTTPHandler
class 导出并删除到已知目录 - 用记事本打开那个文件
- 找到
OnReadyStateChange
子,在签名后面加上这段文字:Attribute OnReadyStateChange.VB_UserMemId = 0
- 保存、关闭并重新导入 class 模块到项目中