2015-03-25 134 views
1

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

只有一个问题来了,就是当我点击保存按钮弹出消息“你的数据保存成功”,网页表格填写数据后。它有“确定”按钮。现在我的程序停在这里,需要用户干预才能手动点击“确定”按钮。

有没有什么办法使用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(); 
}; 
} 

VBA代码对于每个htmlInput在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 
+0

我想了解您的问题......是否希望“数据保存成功”警报消息显示,但在一两分钟后自动关闭自身(因此不需要确定按钮)?或者您要求没有显示“数据保存成功”警报消息?因为如果它是后者(根本没有消息),那么只需在代码中删除'alert(“Data Saved Successfully”)''行。 – cybermike 2015-03-25 12:01:17

回答

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 
-2

我有这个问题,我可以解决这个问题是通过编写标识弹出和关闭它VB脚本的唯一途径...

在此之后,你只需要从调用它你的vba代码。