从 IE 中的下拉菜单中选择一个选项并触发一个函数

2023-11-29

所以,我是 VBA IE 自动化的新手。我会尝试非常具体地回答我的问题。最近,我一直在尝试登录一个网站,然后从下拉列表中选择一个月。我可以从下拉列表中选择一个选项。但是,当我单击搜索按钮时,显示的结果不是我使用 VBA 选择的值,而是网页上最初存在的值。通常,如果一个人访问该网站,他必须单击下拉菜单并选择相关时期,然后单击搜索按钮。 我还尝试了 FireEvent“onchange”,但这似乎没有任何效果。 我附上了 VBA 的相关部分以及相关的 HTML。

请指导我如何选择期间。

VBA代码:

Set e = IE.document.getElementsByName("fin")(0)
 e.Focus
 e.selectedIndex = 1
 e.FireEvent ("onchange")

HTML:

<select name="fin" class="form-control ng-pristine ng-not-empty ng-valid ng-valid-required ng-touched" 
data-ng-model="finyr" data-ng-options="item.year for item in years"
value="item.year" data-ng-change="hidedata()" required="">
<option label="2019-20" value="object:143" selected="selected">2019-20</option>
<option label="2018-19" value="object:144">2018-19</option>
<option label="2017-18" value="object:145">2017-18</option>
<option label="2020-21" value="object:146">2020-21</option></select>

可以有两种方法。首先,你可以在url中设置所需的参数。那么您不需要在这里执行您想要执行的步骤。如果页面使用该解决方案,则该解决方案有效Get与服务器通信。如果它使用Post,您必须执行您要求的步骤。

您可以手动执行所有需要的步骤,通过 url 参数检查它是否有效。之后,查看在浏览器中找到的网址。如果有参数列表,则以问号 (?) 开头。以下所有参数均以与号 (&) 开头。

如果您必须通过代码执行此操作,请尝试以下操作:

Sub SelectFromDropdown()

  Dim url As String
  Dim browser As Object
  Dim nodeSelect As Object

  url = "Your url here"

  'Initialize Internet Explorer, set visibility,
  'call URL and wait until page is fully loaded
  Set browser = CreateObject("internetexplorer.application")
  browser.Visible = True
  browser.navigate url
  Do Until browser.readyState = 4: DoEvents: Loop

  'Get the dropdown and select the wanted entry by index
  'Indexes beginn with 0
  '(Code lines from your question)
  Set nodeSelect = browser.document.getElementsByName("fin")(0)
  nodeSelect.selectedIndex = 1

  'It is likely that the change to the page must be communicated
  'via an HTML event. This is probably the change event
  'FireEvent doesn't work on most pages
   Call TriggerEvent(browser.document, nodeSelect, "change")
End Sub

这个程序触发html事件:

Private Sub TriggerEvent(htmlDocument As Object, htmlElementWithEvent As Object, eventType As String)

  Dim theEvent As Object

  htmlElementWithEvent.Focus
  Set theEvent = htmlDocument.createEvent("HTMLEvents")
  theEvent.initEvent eventType, True, False
  htmlElementWithEvent.dispatchEvent theEvent
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 IE 中的下拉菜单中选择一个选项并触发一个函数 的相关文章

  • 使用VBA删除Excel中的非重复数据

    我尝试删除非重复数据并保留重复数据 我已经完成了一些编码 但什么也没发生 哦 这是错误 哈哈 这是我的代码 Sub mukjizat2 Dim desc As String Dim sapnbr As Variant Dim shortDe
  • 通过 VBA MS_Access 将 MS Access 表导出为 dBase 5

    如何通过 VBA 将单个表导出为 dBase 5 文件 目前我正在使用这个VBA代码 DoCmd TransferDatabase acExport dBase IV DB Total acTable DB Total C Data Fal
  • 使用 SpreadsheetLight 进行行计数

    我正在寻找一个类似于 DataTable Rows Count 的函数 它可以与 SLDocument 一起使用来找出有多少行中有数据 SpreadsheetLight 中有可用的东西吗 还有其他方法可以实现这一目标吗 Brendan SL
  • 如果单元格包含 1 个或多个关键字,则更改不同单元格的值

    我有一个列 其中包含一些字符串描述 例如 Bob davids mowing the lawn tipping cows 此外 我将在不同的工作表或列上列出关键字列表 例如工作关键字列表1 davids work 播放关键字列表 mowin
  • 根据不同的列数据范围隐藏行

    我对使用 VBA 相当陌生 我正在尝试创建一个代码 该代码将查看具有不同数据范围的两个不同列 并隐藏最后一个数据点之外的行 引用两列 目前我有这个 Private Sub Worksheet PivotTableUpdate ByVal T
  • 如何从包含许多表的 Excel 工作表中解析数据帧(使用 Python,可能使用 Pandas)

    我正在处理布局糟糕的 Excel 工作表 我正在尝试解析这些工作表并将其写入数据库 每个工作表可以有多个表 尽管这些可能的表格的标题是已知的 但哪些表格将位于任何给定的工作表上 它们在工作表上的确切位置也不是已知的 表格不以一致的方式对齐
  • 连续工作表切换循环

    我有一个 Excel 电子表格来显示 SQL 数据图表 这些图表将显示在我们机加工车间的显示器上 该电子表格有 45 个选项卡 我需要在选项卡之间切换 每个选项卡间隔 10 秒 然后返回到第一个选项卡并重复循环 I found 如何使用 V
  • 使用 UiPath 循环 Excel 文件中的 URL

    我尝试了几种方法 但不知怎的 它们看起来不干净 我有一个 Excel 格式的 URL 文件 一列中有 400 多个 URL 我希望 UiPath 从该文件中读取并一一浏览这些 URL 我尝试让 导航到 从从 Excel 读取的变量中读取 但
  • 在 Excel 中的文件夹内的所有文件上添加一列

    我在一个文件夹内有 250 个不同的 excel 文件 具有相同的布局 其中包含列A to F 我需要在列上添加新列G 传统的方法是打开每个文件并在以下位置添加新列G 有没有使用 Excel 宏或任何其他工具的简单过程来完成此任务 这个链接
  • 尝试使用变量作为自动过滤器中的条件,并带有“不等于”<>,但无法使其工作

    我正在使用 Excel VBA 使用 不等于 表达式来过滤列表 如果我使用Criteria1 lt gt Bob 代码运行完美 但如果我将 Bob 更改为变量 代码将无法运行 这有效 ActiveSheet ListObjects Rpt
  • 是否有任何公式可用于将特定单元格复制指定次数?

    目前我正在处理一份数据 其中我有一个公司名称列表 例如 1 A 2 B 3 C 还有很多 需要的结果是 1 A 2 A 3 A 4 A 5 A 6 B 7 B 8 B 9 B 10 B 11 C 12 C 13 C 14 C 15 C 等等
  • Outlook 中用于删除重复电子邮件的宏 -

    Public Sub RemDups Dim t As Items i As Integer arr As Collection f As Folder parent As Folder target As Folder miLast As
  • 如何将多个 Excel 工作表转换为 csv python

    我想转换所有的excel文档 xls 将工作表转换为 csv 如果 excel 文档只有一张工作表 那么我将进行如下转换 wb open workbook path1 sh wb sheet by name Sheet1 csv file
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • 如何使用 C# 在 MS Excel 单元格中添加数字验证

    我的目标是限制用户在 MS Excel 单元格中仅输入 1 到 100 范围内的值 我正在以编程方式生成 Excel 文件 但是当我添加上述验证时 抛出异常Exception from HRESULT 0x800A03EC 我写的代码如下
  • 使用 OpenXML 读取列中的 Excel 工作表数据

    有没有一种方法可以使用 OpenXML SDK 和 C 按列而不是按行读取 Excel 工作表 我已经尝试使用 EPPlus 包 但遇到了一些问题 因为我的应用程序还使用 EPPlus 不支持的 xslm 文件 因此 我需要 OpenXML
  • 参考上一个问题:为什么 VBA 没有加载所有发票详细信息

    除了上一个问题之外 我们在销售发票上仍然存在相同的加载失败问题 下面的 VBA Json 仍然仅加载一行或第一个产品详细信息行 而不是与表中该销售发票合作的所有产品行详细信息 我们希望下面的 VBA 能够根据参数加载发票详细信息 例如 如果
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • 如果一个数字写在方括号中,例如[5],这意味着什么

    我正在开发一个旧版 VBA Excel 应用程序 并偶然发现了一些代码行 其中长字符串 从文件中读取 被切成碎片 这些行看起来像这样 Range E16 Value Mid line 49 6 显然 写 6 意味着需要 6 个字符 但我从未
  • VBA全局类变量

    我的障碍是试图让多个子程序识别类变量 当我尝试全局声明它们时 出现编译错误 无效的外部过程 然后 当我运行公共函数或子函数来声明变量时 它们在其他子函数中保持未定义状态 我希望多个子程序能够识别变量 因为它们的值应该通过用户窗体进行更改 然

随机推荐

  • 从namedtuple中获取特定对象的对象名

    我最近发现namedtuple并想用它来替换我讨厌的大类定义 但我很好奇是否有一种聪明的方法来检索我刚刚选择的值的对象名称 如果不清楚 请参阅下面的示例 MyStruct namedtuple MyStruct Var1 Var2 Var3
  • 在 Python 3 中使用 ANSI 序列确定终端光标位置

    我想编写一个小脚本 将图像打印到终端 usr lib w3mimgdisplay 就像在 mac osx 中一样lsi 因此 当脚本启动时 我需要实际的光标位置 或插入符号位置 到目前为止 我想出了用 ANSI 序列获取 shell 中光标
  • 如何使用 Group By 和自连接返回每日最低、最高、开盘价和收盘价结果集?

    SOLVED 堆栈溢出万岁 当我离开时 人们留下了 2 个解决方案 谢谢大家 为两个可行的解决方案分发业力的协议是什么 这是我回来发布的解决方案 它源自另一个 StackOver 解决方案 如何使用聚合函数在MySQL查询中获取分组记录的第
  • 可空对象必须有一个值#2

    我试图重用我一直使用的相同代码 但现在遇到错误 我正在循环访问各种用户表 并在其中执行以下操作 DateTime dcdt DateTime u DateCreated DateTime lldt DateTime u LastLogon
  • 如何使用js移动输入中的文本

    我只是使用 js 来设置文本输入的值 但是 当文本长度超过输入可容纳的长度时 多余的文本将隐藏在输入的右侧部分 如何像正常打字一样隐藏左侧区域多余的文字 原谅我糟糕的英语 当您执行此操作时 您的插入符位置位于文本的开头 您需要将插入符位置移
  • 使用 common lisp 展平列表

    我正在读 Paul Graham 写的 On Lisp 一书 在第 4 章 实用函数 中 他给出了对列表进行操作的小函数的示例 这在编写较大的程序时会很有帮助 其中之一是flatten 给定任意级别的嵌套列表作为参数 展平将删除所有嵌套元素
  • 改进 HoughLines 以进行水平线检测(Python、OpenCV)

    我有这个源图像 我的目标是删除底线 同时保持字母 数字不变 这是我使用的代码 import cv2 import numpy as np img cv2 imread src png gray cv2 cvtColor img cv2 CO
  • 在 Cassandra 中存储值列表

    版本相关 这个问题的一些答案涉及旧版本的 Cassandra 此类问题的正确答案取决于您使用的 Cassandra 版本 我有一个个人资料列族 想要在每个个人资料中存储技能列表 我不确定这在 Cassandra 中通常是如何完成的 一种选择
  • Python Glassdoor API

    我正在尝试使用 Python 从他们的 API 中获取 glassdoor 数据 import urllib2 id1 x key y action employers company company basepath http api g
  • 在 Flask 中,我在哪里定义 url_for() 使用的域?

    当我打电话时url for index 它会生成 但有时我希望它生成 domain tld 反而 我在文档中找不到指定这一点的位置 我只需要做吗 domain tld s url for index url for需要一个 external
  • 编译器正在创建额外的类文件,其中包含 $

    我正在使用 Eclipse 并使用 SWT 编写了一个 Java 应用程序 当 Eclipse 编译我的程序时 它将我的主文件重命名为 4 个不同的文件 如下所示 主文件 class 主文件 1 class 主文件 2 class 主文件
  • VBA - 将上传的 .csv 文件名放入特定工作表的单元格中

    我想知道是否有一种方法可以获取所选的 csv 文件并将名称放入 摘要 表上的单元格中 以下是上传 csv 文件的代码 Dim ws As Worksheet strFile As String Set ws ActiveWorkbook S
  • JavaScript 数组拼接与切片

    有什么区别splice and slice const array 1 2 3 4 5 array splice index 1 array slice index 1 splice 改变原始数组 而slice 不 但它们都返回数组对象 请
  • rm() 似乎没有清空我的 R 工作区

    我正在尝试清理我的 R 工作区 我在任何线程中发现的任何东西似乎都不起作用 我已经在谷歌上搜索并尝试了几个小时的解决方案 当我打开 R 并输入ls 控制台显示上一个会话中的所有代码 function name pos 1L envir as
  • 如何循环遍历字符串并打印某些项目?

    lst AB CD EF GH 输出 A B CD E F GH 这是我尝试过的 但它不起作用 while index lt len my string curr char my string index if curr char whil
  • 如何使用 Groovy 元编程重写 java 类型实例的方法?

    我试图在 Groovy 代码中重写 java 类型实例的方法的功能 但遇到了类转换异常 我看了张贴的指南here但我无法让它工作 由于我的实际问题有点混乱 下面是一些可运行的示例代码 但由于相同的错误而失败 在示例中 我想重写 java l
  • 范围内非重复随机查找算法

    我正在寻找一种有效的算法 可以生成一定范围内的随机值 而不重复 在伪代码中 在 Rand 类中 Rand long from long to this from from this to to long getNumber returns
  • 如何使用 Firebase 存储移动文件?

    有没有办法用 firebase storage 移动文件 例子 user1 public image jpg 到 user1 private image jpg 由于 Firebase Storage 由 Google Cloud Stor
  • Meteor 仅将授权模板发送给客户端

    我知道流星会编译模板给客户端 使用meteor auth系统 是否有一种方法仅在用户有权查看模板时才发送模板 因此在客户端检查html代码时它们不可见 例如 我们不想总是将管理部分发送到浏览器 例如 如果我有
  • 从 IE 中的下拉菜单中选择一个选项并触发一个函数

    所以 我是 VBA IE 自动化的新手 我会尝试非常具体地回答我的问题 最近 我一直在尝试登录一个网站 然后从下拉列表中选择一个月 我可以从下拉列表中选择一个选项 但是 当我单击搜索按钮时 显示的结果不是我使用 VBA 选择的值 而是网页上