连接边 / Chrome 到 VBA

Connecting Edge / Chrome to VBA

我在 VBA 中有一个代码,我一直用它来打开 Internet Explorer,复制特定网站上的信息,然后粘贴到单元格中。现在的问题是网站现在不能用IE了。

我正在尝试调整此代码以将其与 Edge 和/或 Chrome(我已经安装了 Selenium)一起使用,但实际上我正在为此苦苦挣扎。

有人可以帮我调整那个代码吗?

Option Explicit


Sub Test()


    Dim IE As Object
    On Error Resume Next
    Application.DisplayAlerts = False
    
    Sheets("Sheet3").Select
    Range("A1:A1000") = "" ' erase previous data
    Range("A1").Select


    Set IE = CreateObject("InternetExplorer.Application")
        With IE
            .Visible = True
            .Navigate "https://google.com" ' should work for any URL
            Do Until .ReadyState = 4: DoEvents: Loop
        End With


        IE.ExecWB 17, 0 '// SelectAll
        IE.ExecWB 12, 2 '// Copy selection
        ActiveSheet.PasteSpecial Format:="Text", link:=False, DisplayAsIcon:=False
        Range("A1").Select
        IE.Quit

    Application.DisplayAlerts = True
End Sub

如何将 IE 提及切换到 Edge 或 Chrome?比如把IE改成objEdge等。

您需要使用 SeleniumBasic 来自动化 VBA 中的 Edge。 SeleniumBasic 是一个基于 Selenium 的浏览器自动化框架,适用于 VB.Net、VBA 和 VBScript。

您可以按照以下步骤使用 SeleniumBasic 自动化 Edge 浏览器:

  1. this link下载最新版本的SeleniumBasic v2.0.9.0并安装。
  2. this link下载对应版本的Edge WebDriver。
  3. 找到SeleniumBasic的路径,我的情况是C:\Users\%username%\AppData\Local\SeleniumBasic(也可能是这个路径C:\Program Files\SeleniumBasic),复制Edge WebDriver msedgedriver.exe到这个路径。
  4. msedgedriver.exe 重命名为 edgedriver.exe
  5. 打开Excel并准备编写VBA代码。
  6. 在VBA代码界面,点击Tools > References,添加Selenium Type Library reference,点击确定保存。
  7. 示例VBA代码(您可以根据需要更改它):
    Public Sub Selenium()
        Dim bot As New WebDriver
        bot.Start "edge", "https://www.google.com"
        bot.Get "/"
        bot.Wait 5000
        bot.Quit
    End Sub
    

参考link: