这适用于我的普通笔记本电脑 16Gb 内存和 Excel Office 365,但是当我使用具有 4Gb 内存和 Excel Office 365 的平板电脑时。当我初始化包含两个网络浏览器的特定用户表单时,它会导致 Excel 崩溃,我不这样做收到任何错误消息,看起来它正在考虑它,然后 Excel 只是关闭并以恢复的版本重新打开。我的所有其他代码都工作正常。
这在我的 16Gb 内存笔记本电脑上运行正常,Windows 和 Excel 版本相同,唯一的区别是 4Gb。我原以为由于内存差异,它只会花费更长的时间,这是内存问题吗?
当我清空以下几行时,用户表单加载正常(显然没有导航到网页)
Me.WebBrowser1.Silent = True
Me.WebBrowser1.Navigate "https://www.nutracheck.co.uk/CaloriesIn/"
Me.WebBrowser2.Navigate "about:blank"
Me.WebBrowser2.Document.Write "<img style=""width:100%;""
src=""https://media.giphy.com/media/MIY4jpusckRmU/giphy.gif"">"
WebBrowser2.Document.Body.Style.Border = "none"
WebBrowser2.Document.Body.Scroll = "no"*
Private Sub UserForm_Initialize()
With Application
' here I have code to format and position labels and command buttons on
'userform according to screen size
End With
'next line suppresses script errors in the web browser window
Me.WebBrowser1.Silent = True
Me.WebBrowser1.Navigate "https://www.nutracheck.co.uk/CaloriesIn/"
Me.WebBrowser2.Navigate "about:blank"
Me.WebBrowser2.Document.Write "<img style=""width:100%;""
src=""https://media.giphy.com/media/MIY4jpusckRmU/giphy.gif"">"
With Application
WebBrowser1.Top = .Top + 40
WebBrowser1.Left = AddARecipe.Left + (AddARecipe.Width * 0.48)
WebBrowser1.Height = .Height - 40
WebBrowser1.Width = AddARecipe.Width * 0.5
End With
With Application
WebBrowser2.Top = .Top + 60
WebBrowser2.Left = 0 '10
WebBrowser2.Height = (AddARecipe.Width * 0.243)
WebBrowser2.Width = (AddARecipe.Width * 0.45)
WebBrowser2.Visible = False
WebBrowser2.Document.Body.Style.Border = "none"
WebBrowser2.Document.Body.Scroll = "no"
End With
End Sub
当代码未更改地运行时,我单步执行代码时不会出现错误消息,它只是在“结束子”处 Excel 关闭。
我在将一些 Excel 宏移植到 64 位时遇到了类似的问题。 Excel 在 WebBrowser1.Navigate2 调用时崩溃并重新启动。 我不确定 webbrowser 对象是否仍然受支持,但在这个地址
https://forum.ozgrid.com/forum/index.php?thread/1231377-webbrowser-navigate-64bit/
我找到了适合我的应用程序的解决方法: 我没有使用嵌入在 Excel 表单中的 webbrowser 对象,而是更改了代码以调用外部浏览器,如下所示:
ActiveWorkbook.FollowHyperlink Address:="http://www.....
就我而言,之前的版本无法在 win11 和 Office 64 位的 PC 上运行:
Load UserForm1
UserForm1.Show vbModeless
UserForm1.WebBrowser1.Navigate2 "file://127.0.0.1/c$\Temp\collapsable\index.html"
已替换为:
ActiveWorkbook.FollowHyperlink Address:="file://127.0.0.1/c$\Temp\collapsable\index.html"