gpt4 book ai didi

excel - 如何在 Excel VBA 表单中嵌入浏览器?

转载 作者:行者123 更新时间:2023-12-04 21:52:23 27 4
gpt4 key购买 nike

过去我使用过 Microsoft WebBrowser在许多 VB6 和 Excel VBA 表单中进行控制。我需要再做一次,但我不知道该怎么做。

我尝试打开一个旧的 VB6 项目,但收到以下错误消息:

Line 17: Class SHDocVwCtl.WebBrowser of control WebBrowser was not a loaded control class.

我尝试添加对 Microsoft Web Browser 的引用到一个新的 VBA 项目,但它不存在。

我尝试添加对 msi.dll 的引用根据建议 here ,但没有帮助。

我尝试从开发人员功能区 - 插入 - 更多控件 - Microsoft Web 浏览器,它确实存在,但它说 Cannot insert object .

我尝试使用 Shell.Explorer.2描述的对象 here ,但我得到一个错误:
Sheet1.OLEObjects.Add ClassType:="Shell.Explorer.2", Left:=147, Top:=60.75, Width:=400, Height:=400

Run-time error '1004':
Cannot insert object.

唯一可行的方法是打开一个 IE 窗口,但我需要将浏览器嵌入到表单中,因为我需要添加一些自定义按钮:
Set IE = CreateObject("InternetExplorer.Application") 
IE.Visible = True

最佳答案

我无法像以前那样让旧的 Web Browser 控件出现在 VBA 控件工具箱中,但我能够从代码中将它动态插入到表单中。所以我不能把小地球拖成一个表格,但这不是问题。

一些评论提到更改注册表中的值。这是在工作表中插入嵌入式浏览器所必需的,但对表单没有影响。

添加对 Microsoft Internet Controls (ieframe.dll) 的引用就足够了,然后在表单中使用以下代码:

Option Explicit

Private WithEvents WB As WebBrowser

Private Sub UserForm_Activate()
Set WB = Me.Controls.Add("Shell.Explorer.2")
WB.Navigate "http://google.com"
End Sub

Private Sub WB_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Debug.Print "WB_NavigateComplete2"
End Sub

编辑

@VictorK 在评论中提醒我,我需要右键单击工具箱来添加控件。我确实记得在添加引用后添加了控件,但我不记得(也不认为)右键单击并添加控件。

所以...我需要做的就是添加对 ieframe.dll 而不是 Microsoft Web Browser 的引用,因为 Microsoft Web Browser 没有出现在列表中。其他一切似乎都运行良好。

我仍然不知道为什么旧的 VB6 应用程序无法加载,但此时我真的不在乎。

关于excel - 如何在 Excel VBA 表单中嵌入浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51501213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com