我有一个Excel VBA宏,可通过Internet Explorer与Intranet站点进行交互,以遍历客户列表,打开客户资料,更新字段并保存更改。
我遇到的问题是,当我将更改保存到客户个人资料时,Web应用程序中会弹出一个窗口,要求我确认对他们的个人资料所做的更改,但我不知道如何编程点击弹出窗口中的“确定”。当我单击“保存”按钮时,javascript将执行一个函数调用以提交更改。
发送键不起作用,因为在确认弹出窗口之前,代码不会执行下一行。我尝试了提到的其他解决方案,但无法使它们正常工作(javascript部分对我来说是新的)。
在弄清楚如何以编程方式单击“确定”以使我的代码和平运行方面的任何帮助将不胜感激。
VBA代码:
'pulling up edit user profile link
s = objIE.document.getElementsByTagName("a")(4).href
objIE.navigate s
'wait here a few seconds while the browser is busy
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
'Adding value to customers profile and saving changes
objIE.document.all.Item("Contact_Id").Value = Sheets("List").Range("c" & n).Value
objIE.document.all.Item("submitBn").Click
'wait here a few seconds while the browser is busy
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
提交按钮正在调用的Java脚本函数:
function doNextPage() {
if (checkFormInputForEnglish(document.editProfileForm)) {
if(validateForm()){
if(confirm("Do\x20you\x20want\x20to\x20submit\x20the\x20changes\x3F")) {
document.editProfileForm.submitBn.disabled = true;
document.editProfileForm.submit();
答案 0 :(得分:0)
使用VBA
通过objIE.document.all.Item("submitBn").Focus
然后使用SendKeys "~"
单击该按钮。
因此这里不会参与VBA。现在,通过检查HTML弹出代码是否可见/存在来检测(HTML)弹出