使用VBA代码禁用网页的警报消息

时间:2015-03-25 06:56:39

标签: vba excel-vba excel

我正在使用VBA代码打开一个网页,其中包含用户填写数据的表单。我有包含数据的excel文件。我编写VBA代码,从excel读取数据并将其放在网页上。在网页上填写信息后,我点击“保存”按钮。我使用VBA代码完成的所有这些工作,以便它可以自动完成。我有500个用户数据因此我运行循环500次。所有这一切都罚款。

只有一个问题出现了,当我点击保存按钮后填写网页表格中的数据时,会弹出一条消息"您的数据已成功保存"。它有" OK"按钮。现在我的程序在这里停止,需要用户干预才能手动点击" OK"按钮。

有没有办法使用VBA代码来停止此弹出消息框,以便不再需要手动干预?

我也阅读了为网页编写的网页和Javascript。我发现当单击“保存”按钮时,会出现一个名为savedetails()的函数。在这个函数里面有一个alert()函数。示例代码

function saveDetails()
{
/* get details of member*/
---
---
---
---
---
if (xml.status == 200 || window.location.href.indexOf("http") == -1) {  
    var successCode = "";
alert("Data Saved Successfully");
var tes = xml.responseText;

/*  if (successCode == '1') {  */

document.webDataForm.submit();
remove_popup();
};
}

每个htmlInput的VBA代码在htmlColl中

  If Trim(htmlInput.ID) = "btn" Then
    If Trim(htmlInput.Name) = "btnfinal" Then
                              htmlInput.Click  'After this "Data Saved Successfully popup message comes and program need user intervention
                             temp = htmlInput.getAttribute("onClick")
                             MsgBox temp
                            'IE.document.getElementById("clearRelItems").removeAttribute ("o n C l i c k")
                    'Call iedoc.parentWindow.execScript("window.confirm = function saveBankDetails() {return true}", "JavaScript")  // Not worked
                             'htmlInput.removeAttribute ("onClick") //Not worked
                             'htmlInput.setAttribute "onClick", "return TRUE"   //Not worked
                            'Application.SendKeys "{ENTER}", True // Not worked
                            Exit For
                        End If
                    End If
            Next htmlInput

2 个答案:

答案 0 :(得分:1)

您可以尝试使用Application.DisplayAlerts函数包装该行,该函数生成您不需要的显示框;

例如

If Trim(htmlInput.ID) = "btn" Then
    If Trim(htmlInput.Name) = "btnfinal" Then
          Application.DisplayAlerts = False
              htmlInput.Click 
          Application.DisplayAlerts = True

.... Further Code

答案 1 :(得分:-2)

我遇到了这个问题,我解决问题的唯一方法是编写一个标识弹出窗口并将其关闭的vb脚本...

之后,您只需要从您的vba代码中调用它。