过去,我在许多VB6和Excel表单中使用过Microsoft控件。我需要再做一次,但我想不出怎么做。
我尝试打开一个旧的VB6项目,并收到了以下错误消息:
Line 17: Class SHDocVwCtl.WebBrowser of control WebBrowser was not a loaded control class.我尝试将对Microsoft Web Browser的引用添加到一个新的VBA项目,但它并不存在。
我尝试按照建议的msi.dll添加对这里的引用,但没有起到作用。
我试过从开发者丝带-插入更多的控件-微软的网络浏览器,它确实存在,但它说Cannot insert object。
我尝试使用描述为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发布于 2018-07-24 15:36:45
我无法像以前一样将好的旧Web浏览器控件显示在VBA控件工具箱中,但是我能够从代码中动态地将它插入表单中。所以我不能把这个小地球仪拉成一个形状,但这不是问题。
一些注释提到更改注册表中的值。这是在工作表中插入嵌入式浏览器所必需的,但对窗体没有任何影响。
添加对(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,因为Microsoft没有出现在列表中。其他一切似乎都很好。
我仍然不知道为什么旧的VB6应用程序不加载,但在这一点上,我真的不在乎。
https://stackoverflow.com/questions/51501213
复制相似问题