如何使用 Excel VBA 单击网页上的链接?

2024-01-25

我正在编写 VBA 代码来从用户那里获取股票代码,导航到网站,输入股票代码并单击相应的链接。

我研究了这个StackOverflow 问题和回复 https://stackoverflow.com/questions/21002756/how-to-click-on-a-hyperlink-on-a-web-page-using-vba-excel,但是,我没有可用的内部文本值。

我的VBA代码:

Sub clicklick()
Dim ie As Object
Dim form As Variant, button As Variant
Set ie = CreateObject("InternetExplorer.Application")
ticker = InputBox("Enter Ticker Symbol: ")

With ie
.Visible = True
.Navigate ("http://www.SITE_URL.com")

While ie.ReadyState <> 4
DoEvents
Wend

ie.document.getElementsbyName("sSrchTerm").Item.innertext = ticker

End With
End Sub

该链接在页面源中显示如下:

<a class="hqt_button" href="javascript:void(0): onclick=HeaderBox.trySubmit()"></a>

该元素似乎没有名称、内部文本或 ID。我怎样才能点击链接?

EDIT:

    Set Link = ie.document.getElementsByTagName("a") 
    For Each l In Link 
        If Link.classname = "hqt_button" Then 
            Link.Click 
            Exit For 
        End If 
    Next l 

尝试获取锚标签的集合,方法是:

GetElementsByTagName("a")

然后,使用尽可能多的逻辑迭代该集合,以确保单击正确的按钮。

For each l in ie.document.getElementsByTagName("a") 
    If l.ClassName = "hqt_button" Then
        l.Click
        Exit For
    Next

如果有多个具有相同类名的锚点,您可以这样做:

    If l.ClassName = "hqt_button" AND l.Href = ""javascript:void(0): onclick=HeaderBox.trySubmit()" Then
        l.Click
        Exit For
    Next

或者

如果您使用的是 IE9+,您可以使用GetElementsByClassName method.

GetElementsByClassName("hqt_button")   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Excel VBA 单击网页上的链接? 的相关文章

  • Excel的INDEX函数可以返回数组吗?

    如果数据在范围内A1 A4如下 Apple Banana Orange Strawberry Then INDEX可用于单独返回该列表中的任何值 例如 INDEX A1 A4 3 会回来Orange 是否有类似的 Excel 函数或函数组合
  • 在php中将excel转换为xml

    我想读取 Excel 文件并根据该数据创建 XML 文件 在php中可以吗 Thanks 快速谷歌搜索发现this PHP https github com PHPOffice PHPExcelCodePlex 上的项目 您可能想看一下 它
  • 如何从有条件的列中获取最新值

    我在 Excel 中有一个表 其中包含以下列 Date 人名 金额 英镑 该表用于记录人们何时付钱给我 通常 我可以让不止一个人在同一天向我付款 而且 随着时间的推移 同一个人会在很多天向我付款 记录添加到表格底部 以便按日期排序 但不再按
  • VBA 中的 Excel 下拉列表:“无法获取工作表类的 DropDowns 属性”

    我有这个代码 Sub addDropdown Name ActiveSheet DropDowns Add 74 25 60 188 25 87 75 Select Set n ActiveSheet DropDowns Name If N
  • 如何在 Excel VBA 中仅迭代自动筛选工作表中的行?

    需要仅迭代自动筛选范围中的行 目的是获取行索引 我尝试过这个块 For Each ele In rng RowInd ele Rows Address RowNum Split RowInd 2 Next ele 这会在 rng 中的所有
  • VB.NET 中的 Excel 自动调整列

    我这里有我的 VB6 代码并且运行良好 For CLms 1 To 10 ws Columns CLms AutoFit lt Autofilt data on XL sheet Next CLms 我已经搜索了如何在 VB NET 中使
  • 基于两列值的VLOOKUP

    我有一个表 其中一列包含用户 ID 这些被多次输入以显示特定主题的结果 ID Topic Pass Fail 71086686 Science P 71086686 Maths P 71086686 Tech P 71086686 ICT
  • 替换VBA中的变量字符串

    我需要替换字符串中的某些内容 但替换的内容可能会有所不同 有可能 XY test XXxY test XXyyXx TEST yXyy Test 以及几乎任何其他空格和上述情况的组合 我需要替换 test 部分并保留 XXX 所以 当使用简
  • 如何使用 VBA 在 Excel 2010 工作表中添加选项按钮以进行分组?

    I want to add many option button to an excel worksheet not to a VBA form and want to group them by row The result should
  • 如何使用 C# 和 OleDbConnection 读取 .xlsx 和 .xls 文件?

    以前我使用的是ExcelPackage从 xlsx 文件中读取数据 效果很好 但后来我意识到ExcelPackage不适用于旧的 xls 格式 所以我升级到使用OleDbConnection代替ExcelPackage像这样 var fil
  • Excel HTTP 获取超时

    我们有这个小子 它只是将数据泵入远程服务器 一切都按预期进行 前几天 网络服务器发生了一次持续大约一个小时的事件 我仍然可以 PING 服务器 但 IIS 没有响应 结果 宏只是挂起等待响应 关于快速通过 失败测试或超时有什么想法吗 Sub
  • 使用字符串数组作为子字符串参数的 VBA InStr 函数 (Excel)

    找了很久了 第一次提问 目标 循环遍历包含地址的列 根据单元格包含的邮政编码为单元格偏移 0 6 分配一个值 城市名称 这是我到目前为止所得到的 缩短的数组长度 Sub LabelCell Dim SrchRng As Range cel
  • 条件格式化VBA多个条件

    我对 VBA 世界非常陌生 需要一些关于条件格式的 VBA 方面的帮助 1 我需要将条件格式应用于列 M 7岁以下绿色 黄色从7 20 红色大于20 最重要的条件是 如果列 N 声明 NOPO 则我不希望应用条件格式 我已经制定了一个公式来
  • VBA:如何从 MS Access 运行另一个应用程序

    我一直在试图解决这个问题 但似乎我在任何地方都找不到解决该问题的方法 这是第一部分 VBA Shell 命令始终返回 找不到文件 https stackoverflow com questions 10439024 vba shell co
  • VBA半正矢公式

    我正在尝试将半正矢公式应用到Excel函数中 它看起来像这样 Public Function Haversine Lat1 As Variant Lon1 As Variant Lat2 As Variant Lon2 As Variant
  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 修剪工作簿中的所有单元格(VBA)

    我尝试向一直在开发的 Excel 加载项添加功能 该功能会修剪已用单元格末尾的前导空格 甚至可能解析文本 我需要这样做的原因只是为了将其变成超链接我已经在工作了 但是那部分很好 这是我到目前为止所尝试的 我已经修剪了active works
  • Excel VBA 自动过滤子字符串

    我的 Excel 中有多行 其中 D 列为 TDM 02 Bundle Rehoming 5 NE TDM 02 Bundle Rehoming 23 NE IP 02 Bundle Rehoming 7 NE 等 请注意 大多数情况下 N
  • 有没有办法破解 Excel VBA 项目的密码?

    我被要求更新一些 Excel 2003 宏 但 VBA 项目受密码保护 而且似乎缺少文档 没有人知道密码 有没有办法删除或破解 VBA 项目上的密码 你可以直接尝试这个VBA不需要十六进制编辑的方法 它适用于任何文件 xls xlsm xl

随机推荐

  • FullCalendar - 向事件对象添加新属性

    有很多线程讨论类似的问题 但没有一个我能真正理解并应用于我的项目 我有一个数据库 其中包含一个包含多个字段的事件表 字段 1 字段 2 字段 3 我有一个 PHP 文件 json php 该文件 json encode 将该表转换为 JSO
  • ContentControl + RenderTargetBitmap + 空图像

    我试图创建一些图表图像 而不在屏幕上显示这些图表 我已经做了很长一段时间并尝试了很多不同的事情 但似乎没有任何效果 如果我首先在窗口中显示图表 则代码可以完美运行 但是如果我不在窗口中显示它 则位图只是带有黑色边框的白色 不知道为什么 我尝
  • 访问原始 Apache Web 服务器请求

    我打算设计一个网络 GPS 跟踪应用程序 GPS 使用 TCP 无 HTTP 标头 在端口 7070 我打算将其更改为 80 上传输数据 我知道 GPS 跟踪器和客户端之间的通信协议 但是我被困住了 因为我无法拦截网络服务器上的数据包 由于
  • 无法运行项目 - Android Studio 2.0 Crashlytics 问题

    我将 Android Studio 更新到 2 0 并尝试让即时运行正常工作 Gradle 同步有效 重建项目正在进行中 尝试运行 失败 我究竟做错了什么 变量 io fabric tools gradle 1 14 4 com andro
  • :hover 在拖放时粘在元素上

    我有简单的 ol li 结构 想添加拖放功能 此外 我想以不同的颜色突出显示悬停项目和拖动项目 但这是 WebKit 中的一个不寻常的错误 捕获最后一个项目 将其拖到顶部 将其拖放到第一项 最后一个元素捕获悬停伪类 为什么 我该如何预防 这
  • 代码语法荧光笔[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找自动语法荧光笔 当我指定代码的起点和终点时 语法突出显示应自动识别代码类型 例如 sql v
  • Android SSLEngine 示例

    我需要为我正在开发的应用程序使用基于 TLS 的 TCP 套接字 我已经经历了几十个例子 虽然我没有问题地完成握手 但我似乎无法通过任何方式读取输入流 尝试了很多 包括 readline 读取字符数组等 每次我尝试时 应用程序都会在该位置冻
  • Netbeans 中的 hibernate 逆向工程找不到 SQL Server 表

    我的机器上安装了测试 SQL Server 数据库 创建了一个测试 SQL Server 帐户 并使用该帐户在 TestDb 中的默认架构上创建了两个表 在我的 Java Web 应用程序 简单的 JSP 上 我使用 Hibernate 并
  • 何时需要将应用程序源包含在测试目标中?

    在一个新项目中我有这个简单的测试 import
  • 将选择的更改提交到另一个分支,然后恢复当前分支的工作?

    这种情况经常发生在我的工作流程中 我正在一个单独的分支中开发一个功能 在执行此操作时 我会遇到需要修复但来自框架或站点布局较高层的小问题 我想切换回主界面develop从那里选择文件分支并提交更改 然后返回到feature分支 然后变基 以
  • 宽字符输出结果[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 为什么使用 wchar t 时得到数
  • 从 Java 调用 Python

    我想打电话给python来自 Java 的脚本 我的python版本是2 5 Java版本是6 我当前的代码 try Process p Runtime getRuntime exec path dirs file py p waitFor
  • 尝试使用 C# 代码将数据输入到访问文件时出现无效的 Sql 语句错误[重复]

    这个问题在这里已经有答案了 我的错误是 System Data OleDb OleDbException 无效的 SQL 语句 应为 DELETE INSERT PROCEDURE SELECT 或 UPDATE 这是我的代码 我检查以确保
  • 在 Eclipse 中隐藏状态栏或进度栏

    如何隐藏 Eclipse 中的状态栏 我指的是底部的那个 其中还显示 进度 状态 它非常分散注意力 因为它一直在做某事 我看了一下这个问题 https stackoverflow com questions 5645495 how to h
  • 使用 Mockito 的 ArgumentCaptor 类来匹配子类

    下面的代码显示了我的问题 实际上 我尝试使用 Mockito 的 ArgumentCaptor 来验证某个具体类是否调用过一次方法 如果可能的话 我想在这里使用 ArgumentCaptor 但我开始怀疑我需要使用自定义 ArgumentM
  • 本机窗口queueBuffer函数不渲染来自Stagefright解码器的输出

    我将 SurfaceView 表面从 Java 传递到 JNI 在 JNI 中我从该表面获取本机窗口 Stagefright从 mp4 文件中解码 h264 帧 在解码过程中我调用ANativeWindow queueBuffer 为了发送
  • Rails 4:如何使用includes() 和where() 来检索关联对象

    我不知道如何使用 where 方法来检索关联的模型数据 在此示例中 项目属于用户 class Project lt ActiveRecord Base belongs to user has many videos end class Us
  • 为什么 GCC 的 -Wconversion 对于 char 和 unsigned char 的行为不同?

    Consider U8 foo U8 x U8 y return x y 如果 x 和 y 的类型 U8 是 char 或 unsigned char GCC 的 Wconversion 的行为会有所不同 gcc Wconversion c
  • 循环绘制子图

    z A 0 3618426 0 36146951 B 1 8908799 1 904695 C 2 1813462e 08 2 1833622e 08 D 0 89925492 0 89953589 E 2 6356747 2 631791
  • 如何使用 Excel VBA 单击网页上的链接?

    我正在编写 VBA 代码来从用户那里获取股票代码 导航到网站 输入股票代码并单击相应的链接 我研究了这个StackOverflow 问题和回复 https stackoverflow com questions 21002756 how t