Excel VBA函数无意中调用了模块中的另一个函数

Cho*_*ner 0 excel vba excel-vba

这可能是一个快速修复,但我是VBA的新手,我有点困惑.我有一个模块:

Function classify (r As Range)
Debug.Print("Text")
End Function

Function foo(r As Range)
Debug.Print(r.Count)
End Function
Run Code Online (Sandbox Code Playgroud)

模块之前和之后都有工作代码.

如果,在excel的单元格中,我写入=foo(A1)然后按回车键,我得到以下输出:

 1 
Text
Run Code Online (Sandbox Code Playgroud)

为什么?foo如何调用分类?而且,如果我只是打电话给'= classify(A1)',我得到

Text
Text
Run Code Online (Sandbox Code Playgroud)

分类是否已设置为始终被调用?任何帮助是极大的赞赏

Ric*_*ick 5

我可以重现您的问题的唯一方法是使用以下方案:

Cell A1:
=foo(A1)

Cell A2:
=classify(A1)
Run Code Online (Sandbox Code Playgroud)

更新单元格A1时,我得到了

1
Text
Run Code Online (Sandbox Code Playgroud)

我认为这是因为Cell A2引用了A1,所以通过更新A1我也调用A2中的公式,因为它引用了A1.

假设您输入的公式是A1,我会跟踪家属以查看其他公式的位置.