利用VBA在网页上运行的单选按钮(Using VBA to operate radio button

2019-10-17 21:25发布

我是一个菜鸟VBA试图在网络上运行一个单选按钮,但我运气不好。 我一直在google搜索小时,发现我一直在试图修改来完成这项工作,没有任何成功的大量代码片段。 它必须是一些变化:

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

单选按钮两个选项(出口与A,或导出与B)。 “出口与A”是自动选择,我需要显然是另一种选择。 根据HTML按钮的名称都是一样的,它似乎是在现有页面上弹出一个形式。

我怎样才能选择第二个按钮? 我敢肯定,我离开了一些重要信息,所以请让我知道如果我需要别人提供什么,我会很高兴。 谢谢你的任何及所有的帮助!

编辑:有代码,我相信这一点是弹出(它不是一个单独的windown,但在现有的窗口窗格)子窗口:

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>

到目前为止我的代码(这将打开页面,点击该页面,它会创建单选按钮面板上的链接:

暗淡IE作为对象昏暗ieDoc作为对象昏暗锚作为对象昏暗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

Answer 1:

我能得到它与下面的代码的工作:

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

谢谢大家的帮助!



Answer 2:

最简单的方法是使用服务器端的代码,因为VBScript中有一些问题,浏览器,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>

如果不会解决你的问题,尝试向我们展示你的代码。 问候



文章来源: Using VBA to operate radio buttons on a web page