2015-10-13 3 views
0

Я пытаюсь создать макрос первенствовать, который будет отмечаться 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

Я делаю предположение, что здесь флажками, которые имеют идентификатор, как это:

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 

Тогда я на 1, так что он будет захватывать и нажмите

ctl00_MasterMain_ucGenConfig_ucConfigContainer_ucConfigPopup_cblSchemes_1 

И так далее, до 74.

+0

wow that's awesome thanks soooooooooooo much –

Смежные вопросы