在 HTML 至 VBA 中单击隐藏按钮

Hidden Button Click in HTML through VBA

<tr>
    **<td>**JB - Al Qouz**</td>**
    **<td>**
        <strong>0</strong>
        <input type="hidden" name="ingredient[inventories_attributes][][id]" id="ingredient_inventories_attributes__id" value="5564069">
      <small><span class="buyUnitValueText ">pc</span></small>
      <small><b><span id="totalStockValue_1" class="hide paddingLeft15 updateTotalStockValue"></span></b></small>
    **</td>**
    **<td>**
      <div class="align-left">
        <input type="text" name="ingredient[inventories_attributes][][reorder_level]" id="ingredient_inventories_attributes__reorder_level" value="0" class="span5 menuItemInventory reOrderValue">
        <small><span class="buyUnitValueText span7 labelText pull-right align-left">pc</span>
        </small>
      </div>
    **</td>**
    <td class="align-left">
      <input type="hidden" name="ingredient[inventories_attributes][][track_inventory]" id="track_inventory_9971" **value="true"**>
      **<div class="vCheckBox trackInventoryCheckbox active" id="9971"></div>**

如果 "id=9971" 到 vba,我需要改变 2 件事(见粗体)。

  1. 将classvCheckBox trackInventoryCheckbox active设置为classvCheckBox trackInventoryCheckbox
  2. value="true"设置为value="false"

原因是,我无法通过 VBA 单击按钮,当我手动单击时发生的 html 中的代码更改是上面提到的 1. 和 2.

请指教,下面是我的代码,我试图通过 tr 获取标签值但不能,第二部分是我可以更改值的地方。

    With ie
        .Visible = True
        .navigate (EditIngredientURL)
    
        While .Busy Or .readyState <> 4: DoEvents: Wend
        While .document.readyState <> "complete": DoEvents: Wend
    End With
    
    Set HTMLdoc = ie.document
    Set tr = HTMLdoc.getElementsByTagName("tr")
    
    For Each trObj In tr
        Set td = trObj.getElementsByTagName("td")
        For Each tdObj In td
            If InStr(tdObj.innerText, "JB - Al Qouz") Then
                Debug.Print tdObj.innerText
    
                Set CheckBox = tdObj.getElementsByTagName("class")
                For Each idnumber In CheckBox
                    Debug.Print idnumber.innerText
                    Exit For
                Next
            End If
        Next
    Next
End Sub

如果 ID 已知并且您将其保存在变量中 idNo 您可以使用它来定位元素:

idNo = "9971"

HTMLdoc.getElementById("track_inventory_" & idNo).value = "false"

HTMLdoc.getElementById(idNo).className = "vCheckBox trackInventoryCheckbox"