Как добавить галочку к галочке через excel vba т.е. автоматизацию? - PullRequest
0 голосов
/ 22 сентября 2019

Флажок, к которому я пытаюсь добавить галочку, является частью онлайн-таблицы и, кажется, не закодирован как флажок.

Я попробовал следующее, чтобы добавить галочку, но ничего не работает:

IE.Document.getElementByID("gridcolumn-1658-titleEl").Click

IE.Document.getElementByID("gridcolumn-1658-textEl").Click

IE.Document.getElementsByClassName("x-column-header-inner x-column-header-over")(0).Click

IE.Document.getElementsByClassName("x-column-header-inner")(0).Click

Когда я проверяю элемент, я получаю следующее, но ничто из этого не выглядит как флажок (третий фактическая ссылка):

<div class="x-column-header x-column-header-checkbox x-column-header-align-left x-box-item x-column-header-default x-unselectable x-column-header-first" style="border-width: 1px; width: 24px; right: auto; left: 0px; top: 0px; margin: 0px; height: 24px;" id="gridcolumn-1658"><div id="gridcolumn-1658-titleEl" class="x-column-header-inner" style="padding-top: 6px; padding-bottom: 6px;"><span id="gridcolumn-1658-textEl" class="x-column-header-text">&nbsp;</span></div></div>

<div id="gridcolumn-1658-titleEl" class="x-column-header-inner" style="padding-top: 6px; padding-bottom: 6px;"><span id="gridcolumn-1658-textEl" class="x-column-header-text">&nbsp;</span></div>

<span id="gridcolumn-1658-textEl" class="x-column-header-text">&nbsp;</span>

веб-сайт OptimoRoute, доступ к которому можно получить довольно быстро, используя новый вход в систему, для тех, кто заинтересован!

Кнопка, которую я пытаюсь нажать, является верхней в таблице.

1 Ответ

0 голосов
/ 23 сентября 2019

Пожалуйста, обратитесь к следующему примеру кода:

Sub main()
    'we define the essential variables

    Dim IE As Object, Data As Object
    Dim ticket As String


    Set IE = CreateObject("InternetExplorer.Application")

    With IE
        .Visible = True
        .navigate ("https://dillion132.github.io/vbacheckbox.html")

        While IE.ReadyState <> 4
            DoEvents
        Wend

        Set Data = IE.Document.getElementsByClassName("check")

        Debug.Print Data.Length

        If Len(Data) > 0 Then
            For Each ee In Data

                'Debug.Print ee.Value

                'Based on the checkbox value to check/uncheck the checkbox.
                If ee.Value = "Cat" Then

                   ee.Checked = True

                End If

                'check whether the checkbox is checked, then, get the checked value.
                If ee.Checked Then
                   Debug.Print ee.Value & " is checked"

                End If
            Next ee

        End If
    End With
    Set IE = Nothing
End Sub

Код на сайте:

<input class="check" type="checkbox" value="Cat"> Cat </input>
<br />
<input class="check" type="checkbox" value="Dog"  >Dog</input> 
<br />
<input class="check" type="checkbox" value="Pig" checked ="checked" >Pig</input>

Результат, как показано ниже:

enter image description here

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