2

私は Web 上のラジオ ボタンを操作しようとしている VBA 初心者ですが、うまくいきません。私は何時間もグーグルで検索してきましたが、仕事をするために変更しようとしている大量のコード スニペットを見つけましたが、まったく成功しませんでした。それのいくつかのバリエーションである必要があります:

ie.Document.getElementsByName("name_of_radiobox").Item(0).Checked = True

ラジオ ボタンには 2 つのオプションがあります (Export with A または Export with B)。「A でエクスポート」が自動的に選択されます。明らかに、もう一方を選択する必要があります。HTML によると、ボタンの名前はどちらも同じで、既存のページにポップアップするフォーム上にあるように見えます。

2 番目のボタンを選択するにはどうすればよいですか? いくつかの重要な情報を省略していると思います。他に何か提供する必要がある場合はお知らせください。喜んでお知らせします。助けてくれてありがとう!

編集: このコードのビットがあります。これは、ポップアップするサブウィンドウだと思います (別のウィンドウではなく、既存のウィンドウのペインです):

Sys.WebForms.PageRequestManager._initialize('ctl00$sm1', document.getElementById('aspnetForm'));

次に、ボックスのコードは次のようになります。

<div class="so_heading">
Export response data to Excel</div>
<div id="ctl00_cp1_pageMessage" class="attention">Click the button to send an email containing an Excel file to the email address </div>
<div id="ctl00_cp1_pagec" class="so_fields">
<span id="ctl00_cp1_exportOption"><input id="ctl00_cp1_exportOption_0" type="radio" name="ctl00$cp1$exportOption" value="text" checked="checked" /><label for="ctl00_cp1_exportOption_0">Export with answer texts</label><br /><input id="ctl00_cp1_exportOption_1" type="radio" name="ctl00$cp1$exportOption" value="label" /><label for="ctl00_cp1_exportOption_1">Export with answer codes</label></span>
<div class="gen_menu">
<input type="submit" name="ctl00$cp1$btExport" value="Export Data" onclick="window.setTimeout(cb.curry(__DisableButton, this), 0);" id="ctl00_cp1_btExport" class="confirmitButton" />
</div>

これまでの私のコード(ページを開き、そのページのリンクをクリックすると、ラジオボタンのあるペインが作成されます:

Dim IE をオブジェクトとして Dim ieDoc をオブジェクトとして Dim Anchor をオブジェクトとして Dim ieAnchors をオブジェクトとして

  Set IE = CreateObject("InternetExplorer.Application")
    IE.navigate "the url to my page"
    IE.Visible = True

  Do While IE.busy: DoEvents: Loop
  Do While IE.ReadyState <> 4: DoEvents: Loop

  Set ieDoc = IE.Document
  Set ieAnchors = ieDoc.Anchors

    For Each Anchor In ieAnchors
        If Anchor.innerHTML = "Export Data..." Then
            Anchor.Click
            Exit For
        End If
    Next Anchor

  Do While IE.busy: DoEvents: Loop
  Do While IE.ReadyState <> 4: DoEvents: Loop

    ' the bit I can't get to work to toggle the radio button
    ieDoc.getElementsByName("ctl00$cp1$exportOption").Item(1).Checked = True

End Function
4

2 に答える 2

4

次のコードで動作させることができました。

  Set ieRadio = IE.Document.all
    ieRadio.Item("ctl00$cp1$exportOption")(1).Checked = True

ご協力ありがとうございました!

于 2013-03-22T16:54:09.573 に答える
0

最も簡単な方法は、サーバー側でそのコードを使用することです。これは、VBScript には browser 、html5 などのタイプに問題があるためです。サーバー側でラジオボタンを使用する例を次に示します。

default.aspx

 <!DOCTYPE html>
    <%@ Page Language="vb" AutoEventWireup="false" %>
    <script runat="server" language="vb">
      Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Radio1.Checked = False
            Radio2.Checked = True
      End Sub
    </script>
    <html>
      <body>
        <form id="Form1" runat="server">
          <input id="Radio1" type="radio" value="ExA" name="radbtnEx" runat="server" />Export with A<br />
          <input id="Radio2" type="radio" value="ExB" name="radbtnEx" runat="server" />Export with B<br />
        </form>
      </body>
    </html>

それでも問題が解決しない場合は、コードを見せてください。よろしく

于 2013-03-22T00:13:30.390 に答える