如何在Excel VBA表单中嵌入浏览器?
过去,我曾在许多VB6和Excel VBA表单中使用Microsoft控件。我需要再做一次,但我不知道怎么做 我尝试打开旧的VB6项目,但收到以下错误消息:如何在Excel VBA表单中嵌入浏览器?,excel,vba,webbrowser-control,Excel,Vba,Webbrowser Control,过去,我曾在许多VB6和Excel VBA表单中使用Microsoft控件。我需要再做一次,但我不知道怎么做 我尝试打开旧的VB6项目,但收到以下错误消息: Line 17: Class SHDocVwCtl.WebBrowser of control WebBrowser was not a loaded control class. 我尝试将对Microsoft Web Browser的引用添加到新的VBA项目中,但它不存在 我尝试按照建议添加对msi.dll的引用,但没有帮助 我从开发者
Line 17: Class SHDocVwCtl.WebBrowser of control WebBrowser was not a loaded control class.
我尝试将对Microsoft Web Browser的引用添加到新的VBA项目中,但它不存在
我尝试按照建议添加对msi.dll
的引用,但没有帮助
我从开发者功能区“插入-更多控件-Microsoft Web浏览器”中尝试过,它确实存在,但它说无法插入对象
我尝试使用所述的Shell.Explorer.2
对象,但出现错误:
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浏览器控件像以前一样出现在VBA控件工具箱中,但我能够从代码中动态地将其插入表单中。所以我不能把这个小地球仪拖成一个形状,但这不是问题 一些评论提到更改注册表中的值。这是在工作表中插入嵌入式浏览器所必需的,但对表单没有影响 只需添加对Microsoft Internet控件(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应用程序无法加载,但现在我真的不在乎。出于安全原因,它不再受支持,至少在2016年是这样。我想。不知道@QHarr中是否有有用的东西,你知道其他的吗?@Zac:它是[说明](url)我目前使用的
Microsoft Web浏览器
(ieframe.dll
)嵌入在表单中。Office 2016对我来说没有问题,所以它似乎是可能的。@我只是好奇:你右键单击工具箱添加控件了吗?