多页控件上的excel userform webbrowser控件

时间:2018-09-05 06:12:59

标签: excel excel-vba

当您在页面之间切换然后再次切换回显示时,是否有人尝试过在多页控件上使用webbrowser控件?

2 个答案:

答案 0 :(得分:0)

Web浏览器控件无法在多页控件上运行似乎是一个常见问题,到目前为止,我还没有找到解决方案。

这是我设计的解决方案。每次选择页面时,它仅重新创建Web浏览器控件。

Dim wbr As SHDocVw.WebBrowser

Private Sub MultiPage1_Change()
    If MultiPage1.SelectedItem.Name = "Page 1" Then

        Set wbr = Nothing
        Set wbr = Me.MultiPage1.SelectedItem.Controls.Add("Shell.Explorer.2")

        wbr.Height = 700
        wbr.Left = 96
        wbr.Top = 24
        wbr.Width = 570
        wbr.Navigate "About:Blank"
        wbr.Document.write "<HTML><Body><embed src=""file:///C:\Users\User\File.pdf"" width=100% height=100%/></Body></HTML>"
        wbr.Document.body.scroll = "no"
    End If
End Sub

Private Sub UserForm_Initialize()

    Set wbr = Me.MultiPage1.SelectedItem.Controls.Add("Shell.Explorer.2")

    wbr.Height = 700
    wbr.Left = 96
    wbr.Top = 24
    wbr.Width = 570
    wbr.Navigate "About:Blank"
    wbr.Document.write "<HTML><Body><embed src=""file:///C:\Users\User\File.pdf"" width=100% height=100%/></Body></HTML>"
    wbr.Document.body.scroll = "no"
End Sub

答案 1 :(得分:0)

您还可以将选项卡控件与多个Web浏览器一起使用。此选项的优点是保留了小工具的最后加载的网页。只需创建具有所需网页号的标签控件即可。对于网络浏览器的尺寸,建议您直观地创建一个浏览器,并在销毁它之前获取其坐标。这是要使用的代码。

enter code here
Dim webbrowser(3)
Dim actuelpage

Private Sub TabStrip1_Change()
    webbrowser(actuelpage).Visible = False
    actuelpage = Me.TabStrip1.SelectedItem.Index
    webbrowser(actuelpage).Visible = True
End Sub

Private Sub UserForm_Activate()
    Dim pages As Variant
    pages = Array("www.google.com", "www.allo.com", "www.microsoft.com")
    For a = 0 To UBound(webbrowser) - 1
        Set webbrowser(a) = Me.Controls.Add("Shell.Explorer.2")
        webbrowser(a).Height = 306
        webbrowser(a).Left = 30
        webbrowser(a).Top = 42
        webbrowser(a).Width = 684
        webbrowser(a).Silent = True
        webbrowser(a).navigate pages(a)
        webbrowser(a).Visible = False        
    Next a
    actuelpage = 0
    webbrowser(actuelpage).Visible = True
End Sub
enter code here