3

Web サイトのフォームに入力する Excel マクロを作成しています。テキスト ボックスに簡単に入力するコードを作成し、ラジオ ボックスを選択するコードを見つけましたが、ドロップダウン メニューから情報を選択する際に問題が発生しました。

例「性別」:

コンボ ボックスには 3 つのオプションがあります。

Select / Male / Female

これについていくつかのバリエーションを試しました:

doc.getElementsByName("xs_r_gender").Item(0).Value="Male"

...しかし、運が悪い。

これは Web ソース コードです。

<td> <select name="xs_r_gender" id="xs_r_gender">
<option value="" selected>Select</option>
<option value="male">Male</option>
<option value="female">Female</option> </select></td>

ありがとう。

4

9 に答える 9

6

doc.getElementById("xs_r_gender").selectedindex=1
トリックを行うようです。(1 は男性を表します)

ただし、ドロップダウン内のアイテムの値を判断するには、多くのルックアップを行う必要があります。(オプションが 2 つしかないセックスには十分簡単ですが、最大 50 のオプションを持つコンボボックスがいくつかあります)。誰かがより速い解決策を知っていれば、それは素晴らしいことです。それまでの間、私はいくつかのテーブルを作り始めます!!!

ありがとう。

于 2013-02-25T12:00:25.537 に答える
1

doc = ie.document と仮定して以下のコードを試してください

doc.getElementById("xs_r_gender").value = "Male"
于 2013-02-22T01:10:47.597 に答える
1

コードでこれを使用して、以下の関数を呼び出します。

xOffset = SetSelect(IE.Document.all.Item("shipToStateValue"), "Texas")
doc.getElementById("shipToStateValue").selectedindex = xOffset

次に、これを関数に使用します

Function SetSelect(xComboName, xComboValue) As Integer
    'Finds an option in a combobox and selects it.

    Dim x As Integer

    For x = 0 To xComboName.options.Length - 1
        If xComboName.options(x).Text = xComboValue Then
            xComboName.selectedindex = x
            Exit For
        End If
    Next x

    SetSelect = x

End Function
于 2014-09-26T15:35:33.630 に答える
1

属性を持つタグの CSS セレクターを適用するquerySelector方法を試すことができます。documentoptionvalue = 'male'

doc.querySelector("option[value='male']").Click

また

doc.querySelector("option[value='male']").Selected = True
于 2018-06-24T11:55:39.047 に答える
0

このコードを試してください:

doc.getElementById("xs_r_gender").value = "Male"
doc.getElementById("xs_r_gender").FireEvent("onchange")
于 2016-05-18T17:16:26.353 に答える
-1

ここから最後の行までコピーします。

Sub Filldata()

Set objShell = CreateObject("Shell.Application")

IE_count = objShell.Windows.Count

For X = 0 To (IE_count - 1)

On Error Resume Next    ' sometimes more web pages are counted than are open

my_url = objShell.Windows(X).document.Location

my_title = objShell.Windows(X).document.Title

   If my_title Like "***Write your page name***" Then

    Set IE = objShell.Windows(X)

        Exit For

    Else

        End If

    Next

With IE.document.forms("***write your form name***")

' Assuming you r picking values from MS Excel Sheet1 cell A2

i=sheet1.range("A2").value 

.all("xs_r_gender").Item(i).Selected = True

End with

End sub
于 2015-04-10T13:01:14.577 に答える