Vba 如何使用Application.SendKeys中断InternetExplorer对象
我认为我正在通往成功的路上。我试图做的是在IE中加载一个URL,输入一些数据,然后运行一个报告 为此,我创建了一个InternetExplorer对象,使用该对象打开可见性,并导航到我的URL 进入页面后,我必须提供一些数据,让报表生成器执行它需要执行的操作,然后按enter键。一旦我到了这一点,我需要做一些导航到不同的网址,直到我到达报告页面。为了实现这一点,我尝试返回使用InternetExplore对象(IE)进行导航,但每当我使用IE.anything时,462错误就会弹出 我的问题有两个:Vba 如何使用Application.SendKeys中断InternetExplorer对象,vba,internet-explorer,sendkeys,Vba,Internet Explorer,Sendkeys,我认为我正在通往成功的路上。我试图做的是在IE中加载一个URL,输入一些数据,然后运行一个报告 为此,我创建了一个InternetExplorer对象,使用该对象打开可见性,并导航到我的URL 进入页面后,我必须提供一些数据,让报表生成器执行它需要执行的操作,然后按enter键。一旦我到了这一点,我需要做一些导航到不同的网址,直到我到达报告页面。为了实现这一点,我尝试返回使用InternetExplore对象(IE)进行导航,但每当我使用IE.anything时,462错误就会弹出 我的问题有两
Dim text As String
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
'
IE.Visible = True
IE.Navigate "http://~~~~~~~~~.net/reports/views/result/reportResult.faces"
'
text = "somedata"
.
Application.Wait (Now + TimeValue("00:00:02"))
Application.SendKeys (text), True
'
Application.Wait (Now + TimeValue("00:00:02"))
Application.SendKeys vbCrLf, True
'
Application.Wait (Now + TimeValue("00:00:02"))
IE.Navigate "http://~~~~~~~~~.net/reports/views/myMrs/myFavorites.faces"
最终产品与我的目标完全不同。感谢那些提供意见的人,特别是Sorceri让我开始关注这些元素 下面是完成的代码段(在这之后我有更多的事情要做,但这让我知道我需要去哪里)
Private子OpenReport()
将文本变暗为字符串
作为整数的Dim x
暗淡的
设置IE=新的InternetExplorerMedium
text=“somecode”
'加载链接
可见=真实
IE.导航“http://~~~~~~~~~~~/reports/views/result/reportResult.faces”
'等待页面加载
在忙或准备状态4时执行
多芬特
环
'填写pcode
IE.Document.getelementbyid(“代码”).Value=text
'单击提交
IE.Document.getElementsByClassName(“btn btn lg btn主btn块”)(0)。单击
'等待页面加载
在忙或准备状态4时执行
多芬特
环
'单击收藏夹
IE.Document.getElementsByClassName(“MyMRSFavoritsLink”)(0)。单击
'等待页面加载
在忙或准备状态4时执行
多芬特
环
'点击报告
IE.Document.getElementsByName(“myFavoritesForm:treeTable\u tableId:1:infoButton101644806j\u id\u v\u 19”)(0)。单击
'等待页面加载
在忙或准备状态4时执行
多芬特
环
点击执行报告
IE.Document.getElementsByName(“setParametersForm:startReportButton”)(0)。单击
端接头
URL是否可以通过internet或intranet访问?试试看,你的程序结构是错误的。查看所有这些帖子,最好是获取页面的元素,并使用这些元素来调用click事件等,而不是SendKeys。SendKeys可能会出很多问题。@Sorceri-谢谢你的建议。我以前从未这样做过(用宏与网站交互),因此要找到所有语法正确对我来说是一个挑战。我将在清理完后在这里发布最终解决方案,但它工作得非常好。Mark和Omepes感谢您的输入。该url位于公司网络内部。感谢您发布此问题的解决方案。您可以在48小时后将您的答案标记为可接受的答案,此时可进行标记。它可以在将来帮助其他社区成员解决类似的问题。谢谢你的理解。
Private Sub OpenReport()
Dim text As String
Dim x As Integer
Dim IE
Set IE = New InternetExplorerMedium
text = "somecode"
'Load link
IE.Visible = True
IE.Navigate "http://~~~~~~~~~/reports/views/result/reportResult.faces"
'Wait for page to load
Do While IE.Busy Or IE.ReadyState <> 4
DoEvents
Loop
'fill in the pcode
IE.Document.getelementbyid("code").Value = text
'Click Submit
IE.Document.getElementsByClassName("btn btn-lg btn-primary btn-block")(0).Click
'Wait for page to load
Do While IE.Busy Or IE.ReadyState <> 4
DoEvents
Loop
'Click on Favorites
IE.Document.getElementsByClassName("myMRSFavoritesLink")(0).Click
'Wait for page to load
Do While IE.Busy Or IE.ReadyState <> 4
DoEvents
Loop
'Click on report
IE.Document.getElementsByName("myFavoritesForm:treeTable_tableId:1:infoButton101644806j_id__v_19")(0).Click
'Wait for page to load
Do While IE.Busy Or IE.ReadyState <> 4
DoEvents
Loop
Click on execute report
IE.Document.getElementsByName("setParametersForm:startReportButton")(0).Click
End Sub