【问题标题】:How to add a tick to a checkbox through excel vba ie automation?如何通过excel vba ie自动化为复选框添加勾选?
【发布时间】:2020-01-22 17:28:54
【问题描述】:

我尝试添加勾选的复选框是在线表格的一部分,似乎没有被编码为复选框。

我尝试了以下方法来添加勾号,但没有任何效果:

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,感兴趣的人可以使用新的登录名快速访问!

我尝试点击的按钮是表格中的顶部。

【问题讨论】:

  • 用鼠标单击时是否选中/取消选中该框?当您选择复选框然后按空格键时会怎样?
  • 尝试使用类似stackoverflow.com/questions/11048940/… 的内容进入复选框,然后在到达元素后尝试 ResultDiv.Checked = True

标签: excel vba internet-explorer automation


【解决方案1】:

请参考以下示例代码:

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>

结果如下:

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2011-02-01
    相关资源
    最近更新 更多