gpt4 book ai didi

excel - 停止 VBA Evaluate 调用目标函数两次

转载 作者:行者123 更新时间:2023-12-01 22:47:54 27 4
gpt4 key购买 nike

我无法让 VBA 的 Evaluate() 函数仅执行一次;它似乎总是运行两次。例如,考虑下面这个简单的例子。如果我们运行 RunEval() 子例程,它将调用 EvalTest() 函数两次。这可以通过立即窗口中打印的两个不同的随机数看出。如果我们使用 Evaluate 而不是函数调用另一个子例程,则行为将是相同的。有人可以解释一下如何让 Evaluate 执行目标函数一次而不是两次吗?谢谢。

Sub RunEval()
Evaluate "EvalTest()"
End Sub

Public Function EvalTest()
Debug.Print Rnd()
End Function

最佳答案

这个错误似乎只发生在 UDF 中,而不是内置函数中。您可以通过添加表达式来绕过它:

Sub RunEval()
ActiveSheet.Evaluate "0+EvalTest()"
End Sub

但是 Evaluate 还存在许多其他限制,请参见此处 http://www.decisionmodels.com/calcsecretsh.htm

关于excel - 停止 VBA Evaluate 调用目标函数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com