【发布时间】:2020-02-22 19:19:42
【问题描述】:
我想将我们名册 web 应用程序中的 Excel 报告转换为 ics 日历事件。
我想使用 VBA 登录并通过选择开始日期和结束日期导出名册。
使用日期选择器更改开始和结束日期字段(无法输入框)。我尝试使用getElementbyId 更改它们。
编辑:我无法弄清楚如何使用 ID 传递新日期。我想单击日历图标以启动日期选择器,但该按钮没有 ID,并且使用 getElementsbyTagName 证明是一场噩梦,因为有这么多条目,都没有 ID。
所以我现在正在尝试执行 onclick (toggleCalendarShow()) 发生的代码
<TD vAlign=middle><IMG onclick=ctl00xContentPlaceHolder1xtxtstartdateClass.toggleCalendarShow() style="CURSOR: pointer" src="/WebResource.axd?d=isQhimlyp5Th1A7pbrVSPZZmakOc3oiCW_ZfNR9fV1S7PA1gESOWQyDsbZ8jC0DpnrCaO5u8n1xsrNzdQvzMJOpZADHN1t7AN4GTQ-viIM4F0-SAccLr5VyKvi3HXEYZ12VD3X7VI7eXCnCANJFULkTRI3M1&t=633521043060000000"></TD>
我可以在 Internet Explorer 控制台中执行这两个函数,它会根据需要更改日期,但它会返回“未定义”。
当我从 VBA 调用它时,它会出现错误 undefined 并且不会更改日期。
'Select Show Hours
IE.document.GetElementById("ContentPlaceHolder1_Select_ShowHours").Checked = True
'Select Staff as "Me Only"
IE.document.GetElementById("ContentPlaceHolder1_Select_Staff").Value = "999"
ie.document.all.Item
Call ie.document.parentWindow.execScript("ct100xContentPlaceHolder1xtxtstartdateClass.toggleCalendarShow();", "JavaScript")
Call ie.document.parentWindow.execScript("ctl00xContentPlaceHolder1xtxtstartdateClass.selectDate ((15));", "JavaScript")
'Run Report
IE.document.GetElementById("ContentPlaceHolder1_btnReport").Click
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
【问题讨论】:
标签: html excel vba internet-explorer browser-automation