使用 VBA 检查页面上是否存在元素

2023-12-02

我有 15,000 种产品,我需要知道它们是 X、Y 还是 Z。下面的代码在亚马逊上检查产品是否属于 XYZ 类型。

上帝帮助我,它确实有效。唯一的例外是当它搜索亚马逊不再销售的产品时。然后我要查找的包含我正在搜索的产品描述的元素ID在页面上不存在,并且代码在线中断

text = document.getelementbyID("result_0").innertext

出现错误“未设置对象变量或 With 块变量”。

在继续执行其余代码之前,如何检查该元素是否存在?

Thanks!

Sam

Sub LetsAutomateIE()

Dim barcode As String
Dim rowe As Integer
Dim document As HTMLDocument
Set ie = CreateObject("InternetExplorer.Application")
Dim Element As HTMLDivElement
Dim text As String
Dim pos As Integer

rowe = 2

While Not IsEmpty(Cells(rowe, 2))

barcode = Cells(rowe, "B").Value

With ie
.Visible = False
.navigate2 "https://www.amazon.co.uk/s/ref=nb_sb_noss_1?url=search-    
alias%3Daps&field-keywords=" & barcode
Do Until ie.readyState = 4
Loop
End With

Set document = ie.document

text = document.getElementById("result_0").innerText

If InStr(text, "X") Or InStr(text, "Y") Or InStr(text,     
"Z") <> 0 Then pos = 1

If pos <> 0 Then Cells(rowe, 4) = "Y" Else Cells(rowe, 4) = "N"

rowe = rowe + 1

Wend

Set ie = Nothing

End Sub

发布替代方案,以防最佳答案对其他人不起作用:

使用 IsObject() 检查后,我仍然收到运行时错误“91”

如果 ObjIE 是 InternetExplorer 对象,则 IsObject() 工作正常,但我使用的是 InternetExplorerMedium 对象,并且必须用此对象进行验证,因为它返回一个无对象:

If Not objIE.document.getElementById("e164NumberMask") Is Nothing Then
    'do true stuff
Else
    'do false stuff
End If
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 VBA 检查页面上是否存在元素 的相关文章

  • Excel VB脚本打印所有工作簿的工作表

    是否有使用 Excel 的 vb 脚本 或宏 将其所有工作表打印到给定打印机 页数是可变的 Excel的版本是2007 Thanks 看看有没有什么像这样 http vbadud blogspot com 2007 05 print mul
  • HTML
    标签在 IE/Edge 中不起作用

    我正在尝试添加用户可以显示和隐藏的附加可切换部分 我的要求 支持主要浏览器 Mac 上的 Opera Chrome Edge IE11 Firefox Safari 没有 JavaScript 并正在考虑使用
  • Console.log在IE中刚刚输出的对象上[object Object]

    我习惯在 Chrome 或 Firefox 中调试 JavaScript 只是因为它们内置的开发工具比 IE 干净得多 IE8 随着开发者工具的完善而出现 但它们仍然没有完全达到标准 我喜欢能够像在 Visual Studio 中一样单步执
  • 是否可以在 Outlook 启动时运行 VBA 函数?

    我希望 Outlook 启动后立即运行 VBA 函数 这可能吗 如果可以 我需要做什么 我在谷歌上的搜索失败了 我不介意弹出安全警报 Use the Application Startup事件在ThisOutlookSession Priv
  • Excel:匹配两列并输出第三列...并且...每列中有多个实例

    继续前一篇文章 Excel 匹配两列并输出第三列 https stackoverflow com questions 17839932 excel match two columns and output third 我在 A 列中的值不唯
  • 处理 1.15 亿个细胞的最快方法是什么?

    我收到了一项工作任务 其中我要查找 8 位数字并将其替换为来自 2 列表的相应新值 基本上是一个 vlookup 然后用新值替换旧值 我面临的挑战是 2 列表有 882k 行 我尝试替换的单元格约为 1 2 亿 41 000 行 x 300
  • Power Query 根据 Excel 列列表过滤 SQL 视图

    有没有办法使用 Power Query 根据 Excel 表列中的值列表过滤 SQL 视图 我有一个返回大量数据 数百万条记录或属性 的 SQL 视图 用户希望根据属性 ID 的 Excel 表格列进行过滤 我知道我可以根据 Power 查
  • 有一个更好的方法吗? VBA脚本

    我这里有一份供料泵的跟踪清单 我们必须考虑库存水平 所以我做了这个 当您将泵输入表中时 什么也没有发生 当您将患者姓名放在上面时 该行会变成粉红色 表明该泵已离开我们的库存 我试图将一个脚本 宏放在一起 可以计算我们仍然拥有的泵 即白色行
  • 复制两个 Excel 实例之间的范围

    我正在运行两个单独的 Excel 实例 并且尝试将数据从一个工作簿中的范围复制到另一个工作簿中 我有这个代码 Sub CopyValues Dim xlApp As Excel Application Set xlApp GetObject
  • jquery.support 检测 JavaScript 的文件 API?

    我找不到检测浏览器是否支持的方法File API http www w3 org TR FileAPI 通过 support http api jquery com jQuery support jQuery 中的方法 有人知道吗 顺便说一
  • Excel VBA 组合框识别

    我的用户表单上有 4 个以上的组合框 当他们触发时 他们触发相同的事件 我想做的是找出哪个 ComboBox 触发了该事件 组合框的创建取决于组件的数量 生成组合框的代码如下所示 For j 0 To UBound ComponentLis
  • IE 和 Socket.io 兼容性

    我做了一些聊天示例 如下所示 http psismike com 2011 09 node js and socket io chat tutorial http psitsmike com 2011 09 node js and sock
  • 我怎样才能优化这个vba循环代码?

    嗨 我写了这段代码 但这段代码非常慢 我该如何优化这段代码 Private Sub printItem r lastCol objStream FirstCol 1 Dim strFirst As String strFirst CStr
  • 在 Mac 上测试 ICE 网页设计的最佳方法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在 Mac 上设计一个网站 该设计在 Chrome Safari 和 Firefox 中运行良好 现在我将使用不同版本的 In
  • VB.NET 中的 Excel 自动调整列

    我这里有我的 VB6 代码并且运行良好 For CLms 1 To 10 ws Columns CLms AutoFit lt Autofilt data on XL sheet Next CLms 我已经搜索了如何在 VB NET 中使
  • 大型数据集的报告工具/查看器

    我有一个数据处理系统 可以根据其处理的数据生成非常大的报告 我所说的 大 是指该系统的 小 执行在转储到 CSV 文件中时会产生大约 30 MB 的报告数据 而大数据集大约为 130 150 MB 我确信有人有更大的想法 大 但这不是重点
  • 点击后如何等待页面加载

    下面是简单的 IE 自动化代码 只需输入订单号 例如1413105088和邮政编码始终是78759并单击 提交 按钮 然后从结果页面中获取跟踪号码 例如017136295201034并将它们放入 C 列 它按预期工作 但由于 IE 不太可靠
  • MS Access:将组合框中选定的条目插入表中

    这是我使用 MS Access 所做的一个示例 我有一个包含人名的表格和两个用于添加电话号码的文本字段 我创建了一个包含名称的列表框 我设法将列表框中选定的姓名和文本字段 Tel1 和 Tel2 中的电话号码插入表 ContactTable
  • 禁用的文本区域无法在 IE8 中滚动 - 解决方法吗?

    在 IE8 下 禁用的文本区域不会滚动 例如
  • 在 VBA 中调用批处理文件无法正常工作

    我正在尝试创建一个可供其他人使用的程序 目前 我的文件位于目录中C Documents and Settings jpmccros Desktop test 该目录包含我的macro xlsm names bat 还有另一个子目录名为Dat

随机推荐