Я начинающий, так что терпите меня.
Я использую VBA, чтобы взять отчет Excel из нашего веб-приложения и преобразовать его в события календаря ics. Сейчас у меня есть пошаговый процесс вручную, поэтому я хотел бы автоматизировать его, используя vba, чтобы войти в систему и экспортировать список, выбрав даты начала и окончания. Поля даты начала и окончания можно изменить только с помощью средства выбора даты (поля не могут быть введены), и я пытался изменить их с помощью getElementbyId, но это не сработало.
РЕДАКТИРОВАТЬ: Я не смог выяснить, как передать новую дату, используя Id. Я хотел бы щелкнуть значок календаря, чтобы запустить средство выбора даты, но кнопка не имеет идентификатора, а использование getElementsbyTagName доказывает, что существует кошмар, поскольку существует так много записей, и все без идентификаторов. Поэтому я сейчас пытаюсь выполнить код, который происходит с 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