2014-10-23 3 views
0

У меня вопрос об использовании флажков в VBscript. У меня есть большой файл excel с несколькими столбцами с данными в нем. Я создаю свой HTML с помощью vbscript и читаю имя флажка вне файла excel, и я это в массиве. Пока там, все работает. Когда я хочу проверить, установлен ли флажок, я получаю сообщение об ошибке «Object required» «groupnames» Конечно, я знаю, что я делаю неправильно, но я не могу найти решение. Есть ли кто-нибудь, кто мог бы мне помочь?Проверьте динамические флажки vbscript

<html> 
<head> 
<title>Check groups</title> 
<HTA:APPLICATION 
    APPLICATIONNAME="Check groups" 
    ID="Dynamically_check_groups" 
    VERSION="1.0"/> 
</head> 

<SCRIPT LANGUAGE="VBScript"> 
Dim objExcel, objWorkbook, counter 
dim groupnames(90) 
counter = 0 

Sub Window_OnLoad 
    Set objExcel = CreateObject("Excel.Application") 
    Set objWorkbook = objExcel.Workbooks.Open ("D:\Groups.xls") 
    dim strHTML, intRow 
    For intRow = 2 to 90 
     If objExcel.Cells(intRow,4).Value = "sport" Then 
      if ObjExcel.Cells(intRow,5).Value = "vast" Then 
       strHTML = strHTML & "<input type="&Chr(34)& "checkbox"&Chr(34)& " name="&Chr(34)& objExcel.Cells(intRow,2) &Chr(34)& ">" &objExcel.Cells(intRow,1) &" <br>" 
       groupnames(counter) = objExcel.Cells(intRow,2).value 
       counter = counter + 1 
      End if 
     End if 
    Next 
    objExcel.Quit 
    DataArea.InnerHTML = strHTML 
End Sub 

Sub Check_Groups 
    Dim i, name 
    For i = 0 to counter - 1 
     If groupnames(i).checked Then 
      Msgbox groupnames(i) & "was checked." 
     End if 
    Next 

End Sub 
</SCRIPT> 



<body bgcolor="white"> 
    <table border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td valign="top"><Div id="DataArea"></Div></td> 
     </tr> 
     <tr> 
      <td> 
     <button style="width:200;height:50" name="chkgroups" id="chkgroups" accessKey="C" onClick="vbs:Check_groups">Controleer groepen</button> 
      </td> 
     </tr> 
    </table> 
</body> 
</html> 

ответ

0

Вашего

If groupnames(i).checked Then 

пытается получить доступ к .Checked свойства имени/строки,-й элемент в массиве строк имени название группы. Вам нужен объект/элемент DOM с этим именем. Так

Set o = document.getElementById(groupnames(i)) 
If o.checked Then 

В качестве альтернативы, вы можете получить доступ к .all коллекции:

Set o = document.all(groupnames(i)) 
Смежные вопросы