Как включить отключенный элемент после выбора раскрывающегося списка? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь автоматизировать некоторые загрузки, но я столкнулся с некоторыми проблемами, когда отключенные элементы не включались после выбора значения в элементе до этого.Я выбираю диапазоны дат, и первый выпадающий список имеет значение «Любой», что отключает следующие выпадающие списки, которые содержат фактические значения дат.После того, как я изменил «Любой» на «Между», при взаимодействии со страницей вручную эти следующие раскрывающиеся списки станут доступными.Однако при выполнении кода через поля ящики остаются серыми, хотя я могу изменить их значения (очевидно, они не применяются при отправке формы).

Пока чтопробовал практически все взаимодействия, которые я могу придумать с родительским элементом формы, но безрезультатно, например, использование .click, .submit, .focus и selectedIndex перед вводом значений.Я также пытался взаимодействовать с контейнером, но это просто ничего не сделало.У меня есть ощущение, что щелчок вызывает функцию Javascript, но а) я могу ошибаться и б) даже если я прав, я не знаю, как внедрить это в мой код, так как я начинающийкодирование в целом.

Public ieApp As InternetExplorer
Public ieDoc As Object
Public ieTable As Object

Sub GetAppsData()
    Set ieApp = New InternetExplorer

    ieApp.Visible = True

    Set ieDoc = ieApp.Document

    With ieDoc.forms(0)
        Set DateSelect = ieDoc.getElementById("parent_ID")

        Set MinDay = ieDoc.getElementById("child_ID1")
        Set MinMonth = ieDoc.getElementById("child_ID2")
        Set MinYear = ieDoc.getElementById("child_ID3")

        Set MaxDay = ieDoc.getElementById("child_ID4")
        Set MaxMonth = ieDoc.getElementById("child_ID5")
        Set MaxYear = ieDoc.getElementById("child_ID6")

        Set form = ieDoc.getElementById("submit_button_ID")

        DateSelect.Value = "InRange"

        MinDay.Value = "1"
        MinMonth.Value = "7"
        MinYear.Value = "2017"

        MaxDay.Value = "30"
        MaxMonth.Value = "9"
        MaxYear.Value = "2017"

        form.Click
    End With
End Sub

Итак, как уже упоминалось ранее, после запуска строки DateSelect.value = "InRange" я бы хотел, чтобы все остальные раскрывающиеся списки (которые я назвал child_ID's) стали активными, тогда как сейчас,пока код меняет свои значения, они не будут применены при запуске form.Click.

Большое спасибо заранее за вашу помощь!

...