2015-10-13 59 views
0

我试图创建Excel宏将在某个表Internet Explorer页面上标注75个复选框在Internet Explorer中的所有复选框标记使用Excel VBA

该表的代码是:

<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 

预先感谢任何帮助或导致:)

+0

为什么不呢?你有什么错误/问题? – ithil

+0

我怀疑原因是因为没有任何复选框被命名为您传递给'getElementsByName'方法的东西,因此没有任何返回。看来你需要有一个变量,比如i,然后增加1,抓住元素,点击它,然后继续。如果没有访问网站,我无法测试,但我可以尝试编写一些可以帮助您的代码。 – Soulfire

回答

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适当,导航页面等

此代码将第一抓住并用1单击

ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_0 

然后,我的增量,所以会抢,然后单击

ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_1 

依此类推,至74.

+0

哇这真棒谢谢soooooooooooo了 –