使用.Document.getElementById()和vba中的变量

时间:2018-11-22 16:24:37

标签: excel vba excel-vba

我正在尝试使用vba从下拉框中选择值,下拉框的代码块如下

TransformViewModel

如果PositionValueChangedCommand的值是静态的,我会使用<input type="text" id="form_autocomplete_input-1542902425322" list="form_autocomplete_suggestions-1542902425322" placeholder="Search keyword or select filter" role="combobox" aria-expanded="false" autocomplete="off" autocorrect="off" autocapitalize="off" aria-autocomplete="list" aria-owns="form_autocomplete_suggestions-1542902425322 form_autocomplete_selection-1542902425322"> ,但这似乎是随机生成的数值。

我已经看过了,看来我不能简单地添加通配符,例如form_autocomplete_suggestions-1542902425322

并且由于它是随机生成的,并且数量如此之长,因此无法遍历值数组。所以我不确定如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用^运算符使用css属性等于值选择器语法来说从某个子字符串开始。您也可以改用*,即包含。

[id^='form_autocomplete_input-']

VBA:

ie.document.querySelector("[id^='form_autocomplete_input-']")

您还可以使用:

[placeholder='Search keyword or select filter']

将会是:

ie.document.querySelector("[placeholder='Search keyword or select filter']")

当您指出需要选择此选项时,您可能需要:

ie.document.querySelector("[id^='form_autocomplete_input-']").Selected = True

参考:

  1. CSS attribute selectors