【问题标题】:Can I rewrite a Javascript function using Excel VBA?我可以使用 Excel VBA 重写 Javascript 函数吗?
【发布时间】:2010-11-07 00:22:29
【问题描述】:

完全不知道怎么做,但是如果一个按钮的onclick类似于下面:

onclick="ConfirmAvailable();"
function ConfirmAvailable()
{
    if (document.getElementById("AvailableCB").checked)
    {
        return YesNoDialog("'Are you sure?'");
    }
    else
    {
        return true;
    }
}

如果我使用 Excel VBA 设置 ConfirmAvailable()="" 是否有可能将其重置为上述内容,或者甚至始终将输出设置为 =true?结果被传递给另一个函数,所以我需要它返回 true,但理想情况下,我想将其更改为空,然后将其返回到原始状态(如果可能)。 任何帮助将不胜感激,因为我不擅长这些东西。

【问题讨论】:

  • 你确定你说的不是 JavaScript 吗?还有,“确认”?
  • 假设他的意思是 Javascript... 已编辑
  • 你会被诅咒的:-)
  • 嗨,这是网页上的脚本。我可以使用 excel vba 更改脚本以使函数 =“”,但我无法将其更改回 = 上面的正确函数。 (同时将 ConfrimAvailable() 修复为 ConfirmAvailable())

标签: javascript excel vba function rewrite


【解决方案1】:

我发现如果我将页面保存到我的 C 驱动器,这似乎可以工作,但这不接受“实时”页面上的更改,并且我无权在“实时”页面上进行更改"页面。

WebBrowser1.document.btnwhatever.attachEvent "onclick", WebBrowser1.document.parentWindow.next_clicked()

我仍然不知道如何更改函数 next_clicked() 或将其传递回页面的格式,但由于我无法访问“实时”页面,所以无论如何我都无法做到.

感谢大家的帮助和为我调查这个问题。

【讨论】:

    【解决方案2】:

    简单的答案:尝试在浏览器中关闭 JavaScript。返回 true 或 false 的 onclick 宏通常控制是否应遵循链接。如果 JavaScript 已关闭,则无论如何都应遵循该链接。这是否有效取决于网站的其余部分需要启用 JavaScript 的程度

    【讨论】:

    • 嗨,barrowc,很遗憾,页面中的许多其他项目都需要 JavaScript。有谁知道是否可以在页面中注入代码?
    【解决方案3】:

    假设 Checkbox 的名称是 AvailableCB,按钮的名称是 ConfirmAvailable,那么您要执行的 VBA 版本应该是这样的。

       Public Function ConfirmAvailable_Click()
           ConfirmAvailable_Click = False ' default value = false '
           If AvailableCB.Value = True Then ConfirmAvailable_Click = True ' if checked, true '
       End Function
    

    如果按钮名称是其他名称,只需从其 _Click() 方法调用此函数。

    【讨论】:

    • 感谢 A. Scagnelli。我会试一试的。是否可以让 VBA 将函数重写为与上述相同?
    • 确实不行,因为它编写了一个 Excel VBA 函数,但不会替换现有函数。是否可以这样做,或者让 onclick 调用不同的函数?该函数必须加载到页面可以从中获取的某个位置。
    • 以上一个VBA函数。当您说“是否有可能让 VBA 将函数重写为与上述相同”时,您在问什么?
    • 嗨。对不起,如果我不清楚。基本上,我试图在 VBA 宏中关闭上面的函数,并将 true 的结果传递给下一个 java 函数,然后按原样替换该函数,这样我就可以按照最初找到的方式离开页面。
    • 啊。然后,您可能想尝试在 JavaScript 中将函数设置为 NULL。
    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 2013-01-23
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多