VBA - Копирование данных ячейки и вставка в отдельных вкладках IE

Я новичок в VBA.

У меня длинный список URL-адресов (около 200). Я хочу открыть веб-сайт для загрузки видео, вставить URL-адрес в ячейку и перейти к следующему, открывая его в новой вкладке (не в новом окне).

Вот что у меня так далеко:

Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
            (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long)
Sub OpenDownloader()
    Dim ie As Object
    Dim x As Integer
    Dim y As Integer
    Dim url As String
    Dim repeat As Integer
    y = 0
    repeat = InputBox("How many videos to download?")

    Set ie = CreateObject("Internetexplorer.Application")
    apiShowWindow ie.hwnd, SW_MAXIMIZE
    Do While y < repeat
        x = Cells(1, "C").Value
        url = Cells(x, "A").Value
        Cells(x, "A").Interior.Color = RGB(198, 224, 180)
        Range("C1").Select
        ActiveCell.FormulaR1C1 = ActiveCell.Value + 1
        If y = 0 Then
            With ie
                .Visible = True
                .Navigate "https://qdownloader.net/"
            End With
            Do
                DoEvents
            Loop Until ie.readystate = 4
            ie.Document.GetElementsByName("video")(0).Value = url
            Do
                DoEvents
            Loop Until ie.readystate = 4
            ie.Document.GetElementById("downloadBtn").Click
            Do
                DoEvents
            Loop Until ie.readystate = 4
        Else
            With ie
                .Visible = True
                .Navigate "https://qdownloader.net/", 2048&
            End With
            Do
                DoEvents
            Loop Until ie.readystate = 4
            ie.Document.GetElementsByName("video")(0).Value = url
            Do
                DoEvents
            Loop Until ie.readystate = 4
            ie.Document.GetElementById("downloadBtn").Click
            Do
                DoEvents
            Loop Until ie.readystate = 4
        End If
        y = y + 1
    Loop

End Sub

Проблема в том, что, хотя он открывает каждый экземпляр после первого в новой вкладке, он только вставляет ссылку в поле в первой вкладке. Я искал, но я не могу найти способ это исправить. Я могу заставить это открываться и работать в нескольких окнах, но для простоты использования я бы предпочел, чтобы это открывалось во вкладках.

Любая помощь будет оценена. Спасибо.

0 ответов

Другие вопросы по тегам