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

时间:2012-12-12 22:34:30

标签: vba excel-vba excel

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

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

Function foo(r As Range)
Debug.Print(r.Count)
End Function

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

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

 1 
Text

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

Text
Text

分类以某种方式设置为始终被调用?非常感谢任何帮助

1 个答案:

答案 0 :(得分:5)

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

Cell A1:
=foo(A1)

Cell A2:
=classify(A1)

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

1
Text

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

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