【问题标题】:VBA Runtime error 429 while creating an object of Shell32.dll创建 Shell32.dll 对象时出现 VBA 运行时错误 429
【发布时间】:2019-04-12 15:28:20
【问题描述】:

我正在尝试编写一个 VBA 函数,该函数将获取特定已打开 IE 窗口的句柄。经过一番谷歌搜索后,我找到了以下代码:-

Public Function FindIEObject(target As String) As InternetExplorerMedium
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
    On Error Resume Next    
    my_url = objShell.Windows(x).Document.Location
    my_title = objShell.Windows(x).Document.Title
    If InStr(my_title, target) > 0 Then 
        Set FindIEObject = objShell.Windows(x)
        Set myIE = objShell.Windows(x)
        Exit For
    End If
Next
End Function

此代码在我的计算机上运行良好,但是当我在客户端的 Citrix 环境中部署该工具时,我在第 3 行收到错误“ActiveX 组件无法创建对象”

我在谷歌和基础上做了一些研究,在 Citrix 管理员的帮助下 - 技术支持人员将 windows/system32 文件夹中的 shell32.dll 文件替换为新副本并重新注册。

执行此操作后,我希望代码可以正常运行,但我仍然收到相同的运行时错误 429“ActiveX 组件无法创建对象”。

如果有人可以帮助我了解需要做什么才能使代码正常工作,请。提前致谢。

普雷曼舒

【问题讨论】:

    标签: excel vba internet-explorer citrix shell32.dll


    【解决方案1】:

    当组件对象模型 (COM) 无法创建请求的自动化对象并且自动化对象因此对 Visual Basic 不可用时,会发生此错误。并非所有计算机都会出现此错误。

    在 Visual Basic 中,错误 429 有多种原因。如果以下任一条件为真,则会发生错误:

    (1) 申请有错误。

    (2)系统配置有误。

    (3)缺少一个组件。

    (4)有一个损坏的组件。

    您可以尝试检查代码、检查自动化服务器和检查系统以缩小问题范围。

    您可以尝试参考下面的链接,可能会给您更多有用的信息。

    You receive run-time error 429 when you automate Office applications

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多