Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel VBA表单中嵌入浏览器?_Excel_Vba_Webbrowser Control - Fatal编程技术网

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

如何在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的引用,但没有帮助 我从开发者

过去,我曾在许多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
的引用,但没有帮助

我从开发者功能区“插入-更多控件-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对我来说没有问题,所以它似乎是可能的。@我只是好奇:你右键单击工具箱添加控件了吗?