【问题标题】:mark all check boxes in internet explorer using excel vba使用 excel vba 在 Internet Explorer 中标记所有复选框
【发布时间】:2016-01-11 07:49:37
【问题描述】:

我正在尝试创建 excel 宏,它将在 Internet Explorer 页面上的某个表中标记 75 个复选框

该表的代码是:

    <TABLE id=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes border=0><TBODY>
<TR>
<TD><INPUT id=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_0 type=checkbox name=ctl00$MasterMain$ucGenConfig$ucConfigContainer$ucConfigPopup$cblSchemes$0><LABEL for=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_0>Start</LABEL></TD></TR>
<TR>
<TD><INPUT id=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_1 type=checkbox name=ctl00$MasterMain$ucGenConfig$ucConfigContainer$ucConfigPopup$cblSchemes$1><LABEL for=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_1>Start2</LABEL></TD></TR>
<TR>
<TD><INPUT id=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_2 type=checkbox name=ctl00$MasterMain$ucGenConfig$ucConfigContainer$ucConfigPopup$cblSchemes$2><LABEL for=ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_2>Default</LABEL></TD></TR>
    <TR>

等等 各种方法都试过了,就是不想玩了

With IE.document.getElementsByName("ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes")
    .Item.Click
end with

With IE.document.getElementsByName("checkBoxlist(ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes)")
.Item(0).Checked = True 'Entered
End With

For Each htmlelement In IE.document.getElementsByName("ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes")
htmlelement.Item(0).Click
Next htmlelement

在此先感谢您的帮助或线索 :)

【问题讨论】:

  • 为什么不呢?你有什么错误/问题?
  • 我怀疑原因是因为没有一个复选框被命名为您传递给 getElementsByName 方法的名称,因此没有返回任何内容。似乎您需要一个变量,例如 i,并将其递增 1,抓取该元素,单击它,然后继续。如果无法访问该网站,我无法进行测试,但我可以尝试编写一些可能对您有所帮助的代码。

标签: excel vba


【解决方案1】:

我在这里假设具有这样 id 的复选框:

ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_0

有一个从 0 开始的标识符,如上所述,并从 1 递增到 74(对应于您对 75 个复选框的请求)。

如果是这样的话,这样的事情可能会起作用:

    Dim sBaseName As String
    Dim i As Integer

    'The base id of the checkboxes
    sBaseName = "ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_"

    For i = 0 To 74 '75 checkboxes
            ie.Document.getElementByID(sBaseName + CStr(i)).Click
    Next i

当然你必须确保你已经正确设置ie,导航到页面等等。

这段代码会先抓取并点击

ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_0

然后 i 加 1,所以它会抓取并点击

ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_1

以此类推,到 74 岁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2010-11-27
    • 2017-07-02
    • 2012-01-23
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多