gpt4 book ai didi

internet-explorer - 用于与已打开的特定 IE 窗口交互的 VBA 代码

转载 作者:行者123 更新时间:2023-12-02 07:06:14 24 4
gpt4 key购买 nike

我无法找到如何让 Excel VBA 与已打开的特定 IE 窗口进行交互。

这是我的过程:

我打开 IE,导航到网站,输入我的用户名和密码,然后单击“登录”。将打开一个新的 IE 窗口,我用它来输入成员(member)编号并搜索成员(member)信息。

我正在尝试创建一个 VBA 脚本,该脚本将与成功登录后打开的 IE 窗口进行交互(以开始自动执行一些更普通的任务)。我在网上看到了大量关于如何让 VBA 打开新的 IE 窗口,然后与其交互的教程。但是,我真的很难找到有关如何选择特定的已打开 IE 窗口并与其交互的信息。

我尝试将此作为快速测试,看看我是否可以选择正确的 IE 窗口作为可以与之交互的对象。

Sub getIE()
Dim sh As Object, oWin As Object, IE As Object

Set sh = CreateObject("Shell.Application")

For Each oWin In sh.Windows
If TypeName(oWin.document) = "HTMLDocument" Then
Set IE = oWin
Exit For
End If
Next

MsgBox IE.document.URL

End Sub

出现消息框并显示初始 IE 窗口的 URL,但我不知道如何让它选择我通常用来实际获取成员(member)信息的 IE 窗口。

几年前我在学校时参加了几门技术类(class),但我已经有一段时间没有展示任何技术肌肉了。任何帮助将不胜感激!

最佳答案

这是我使用的。它计算 IE 打开实例的数量,然后遍历每个实例并确定网页的 url 和标题。然后,您可以将标题或网址与您要查找的标题或网址进行比较。下面的示例使用“Like”功能比较标题,但就像我说的,如果您愿意,您可以比较网址。另外,如果您正在寻找不会改变的标题或网址,您可以使用“=”而不是“Like”。

marker = 0
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
On Error Resume Next ' sometimes more web pages are counted than are open
my_url = objShell.Windows(x).Document.Location
my_title = objShell.Windows(x).Document.Title

If my_title Like "XYZ" & "*" Then 'compare to find if the desired web page is already open
Set ie = objShell.Windows(x)
marker = 1
Exit For
Else
End If
Next

If marker = 0 then
msgbox("A matching webpage was NOT found")
Else
msgbox("A matching webpage was found")
End If

关于internet-explorer - 用于与已打开的特定 IE 窗口交互的 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com