Ошибка времени выполнения '9': нижний индекс вне диапазона -Ошибка - PullRequest
2 голосов
/ 22 января 2020

Я использую VBA в Excel, чтобы выполнить некоторые операции по очистке веб-страниц, но при попытке связаться с Google Chrome у меня возникает эта ошибка. Как можно избежать этого? Я нажму «Отладка», после чего выделится одна строка ...

Здесь появляется ошибка

This is where the error pops up

Это выделенная строка кода, которая должна вызывать проблему

This is the highlighted line of code that must be giving the issue

Полный код на этой картинке

ПОЛНЫЙ КОД НИЖЕ:

Private Sub time_sheet_filling()

    Dim I As Long
    Dim IE As Object
    Dim doc As Object
    Dim objElement As Object
    Dim objCollection As Object

    ' Create InternetExplorer Object
    Set IE = CreateObject("ChromeTab.ChromeFrame")
    IE.Visible = True

    ' Send the form data To URL As POST binary request
    IE.navigate "https://wistar.dispondo.net/#/login"

    ' Wait while IE loading...
    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop

        'Load the logon page
    Set objCollection = IE.Document.getElementsByTagName("input")
    I = 0
    While I < objCollection.Length
        If objCollection(I).Name = "username" Then
            ' Set text to enter
            objCollection(I).Value = "MyUsername"
        End If
        If objCollection(I).Name = "password" Then
            ' Set text for password
            objCollection(I).Value = "MyPasword"
        End If
        If objCollection(I).Type = "submit" And objCollection(I).Name = "btnSubmit" Then ' submit button clicking
            Set objElement = objCollection(I)
        End If
        I = I + 1
    Wend

    objElement.Click    ' click button to load the form

    ' Wait while IE re-loading...
    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop

    ' Show IE
    IE.Visible = True
Dim links, link
Dim n, j
Set links = IE.Document.getElementById("dgTime").getElementsByTagName("a")
n = links.Length
For j = 0 To n - 1 Step 2
    links(j).Click
'I have some operations to be done will post another question for this

Next



End Sub

Ответы [ 2 ]

1 голос
/ 22 января 2020

Эта ошибка возникнет, если во время выполнения кода в активной книге не будет рабочей таблицы с именем «Данные веб-сайта». Либо имя рабочей таблицы не совпадает, либо другая рабочая книга активна при выполнении кода.

Убедитесь, что имя рабочей таблицы указано правильно, а также явно ссылается на книгу, в которой она находится (чтобы она не независимо от того, какая книга активна при выполнении кода). Если лист «Данные веб-сайта» находится в книге, в которой выполняется код, обратитесь к значению в ячейке, используя:

ThisWorkbook.Sheets("Website Data").Cells(1,1).Value
0 голосов
/ 22 января 2020

Вы не можете использовать Chrome вместо IE таким образом. Chrome можно использовать только через Selenium для просмотра веб-страниц через VBA. IE - единственный браузер с COM-интерфейсом, который необходим для управления приложением через VBA:

Для получения дополнительной информации:

Об объектной модели компонентов (COM)

Об автоматизации браузера Selenium

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...