2012-12-12 38 views
0

这可能是一个快速修复,但我是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怎么称呼分类?此外,如果我只是叫“=分类(A1)”,我得到

Text 
Text 

已分类莫名其妙地被设置为总是被调用?任何帮助是极大的赞赏

+0

你有没有A1的公式可能使其他细胞变得不稳定? – InContext

+0

在按回车键之前清除输出吗?也许在输出窗格中仍然有旧值显示。 – ja72

回答

5

,我可以重现您的问题的唯一途径是与以下情形:

Cell A1: 
=foo(A1) 

Cell A2: 
=classify(A1) 

当更新单元格A1,我得到

1 
Text 

我认为这是由于单元格A2通过更新A1来引用A1的事实,我也称之为引用A1的A2中的公式。

假设您输入的公式是在A1中,我会跟踪依赖项以查看其他公式的位置。

相关问题