У вас есть пара проблем с вашим кодом. Во-первых, вы используете неправильный тип элемента радиокнопки.
Хотя htmlOption
технически a MSHTML.IHTMLElement
, более конкретно он должен иметь тип: MSHTML.HTMLInputElement
. Поэтому измените вашу декларацию на:
Dim htmlOption As MSHTML.HTMLInputElement
Для вашей реальной проблемы, вы должны просто использовать .Click
. Взгляните на developer.mozilla.org :
Метод HTMLElement.click()
имитирует щелчок мыши на элементе.
Когда click()
используется с поддерживаемыми элементами (такими как <input>
), он запускает событие нажатия элемента . Это событие затем всплывает до элементов выше в дереве документа (или цепочке событий) и запускает их события щелчка. (выделение добавлено)
Таким образом, вам не нужно использовать .Checked = True
, потому что, щелкнув элемент ввода, вы не только решите свою проблему с обнаружением скрытой области, но также одновременно измените значение на True
.
Так что вы бы просто использовали это:
'Find the radio button . . .
Set htmlOption = htmlDoc.getElementById("V1-1_True")
'. . . and check it.
htmlOption.Click