使用VBA自动应答window.confirm

时间:2011-11-09 19:05:03

标签: javascript excel-vba vba excel

我有一些打开网页的VBA代码,然后调用一个javascript函数来删除页面外的文件。调用此函数时,它会调用HTML中的window.confirm以确保用户确实要删除该文件。选项是肯定的并取消。我的问题 - 有没有办法自动让我的VBA代码回答是?事实上,除了“是”点击之外,我可以自动执行所有操作,这意味着我仍然必须坐在那里并为要删除的每个文件单击“是”;运行代码并且能够走开是很好的。 编辑:如果有帮助,这是我用来执行javascipt的代码。另外,javascript函数代码

我的代码:

Dim CurrentWindow As HTMLWindowProxy: Set CurrentWindow = IE.Document.parentWindow

m = 2

Do Until date_var < "2011-7-1"

        Cells(1, 11).Value = Range("j1") - m
        date_var = Cells(1, 11).Value
        date_var = Format(date_var, "yyyy-m-d")

        Call CurrentWindow.execScript("Delete('filepath_here_" & date_var & ".csv?DELETE')")

Javascript功能:

<SCRIPT LANGUAGE="JavaScript">
function Delete(What)
{
   if (window.confirm("Do you really want to delete this file"))
   {
      location.href = What;
   }
}
</SCRIPT>

2 个答案:

答案 0 :(得分:0)

您可以在页面加载时尝试执行这段代码:

window.confirm = function() {
    return true;
};

答案 1 :(得分:0)

我不知道VBA,但请尝试以下脚本:

Call CurrentWindow.execScript("location.href='filepath_here_" & date_var & ".csv?DELETE';")

这应该可以解决问题。它比直接调用delete函数更好。没有函数调用开销,没有副作用,也没有确认框。用这个替换代码的最后一行并检查。