【问题标题】:Batch Open URLs批量打开 URL
【发布时间】:2019-09-26 00:57:12
【问题描述】:

我有一个工作表,其中包含 J 列中的网站列表,从第 3 行开始。我想要一个宏,它可以在同一浏览器窗口的不同选项卡中批量打开所有网站。 我有下面的现有代码。

Sub Test()
    Dim ie          As Object
    Dim c           As Range

    Set ie = CreateObject("InternetExplorer.Application")

    With ie
        .Visible = True

        For Each c In Sheets("Common").Range("J3:J" & Cells(Rows.Count, 1).End(xlUp).Row)
            .Navigate c.Value, CLng(2048)
        Next c
    End With
End Sub

它在大多数情况下都有效。但不知何故,它会在浏览器窗口上打开没有值的选项卡。

【问题讨论】:

    标签: excel vba url web-scraping automation


    【解决方案1】:

    您应该在前面指定工作表的名称,因为您正在隐式处理容易出错的活动表。例如。

    ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row 
    

    从调试来看,您似乎使用 xlUp 找到了错误的结束行,因此请使用 xlDown(假设您知道 url 之间没有空单元格)

    Sheets("Common").Range("J3:J" & Sheets("Common").Cells(Rows.Count, 1).End(xlDown).Row)
    

    如果您想使用 chrome,请考虑 installing selenium basic。确保最新的 ChromeDriver.exe 位于 selenium 文件夹中,并添加了 VBE>Tools>References>Selenium Type Library 参考。

    【讨论】:

    • 不使用 selenium 有其他方法吗?
    • 这取决于你的命令行有多好,你可以用 url 编写一个 bat 文件,然后在 VBA 中通过 shell 简单地执行一个循环
    • 感谢您引导我访问该链接。看起来很有信息量。但我认为我不想使用它,因为它需要我再次修改代码,因为我正在处理列中的 URL 列表。
    • 您可以使用相同的想法,但将工作表中的 url 连接到 shell 命令中
    • 它不工作,但没关系。我可以使用 Internet Explorer。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    相关资源
    最近更新 更多