【问题标题】:Excel VBA function unintentionally calls another function in moduleExcel VBA 函数无意中调用了模块中的另一个函数
【发布时间】:2012-12-12 22:34:29
【问题描述】:

这可能是一个快速修复,但我是 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 call 是如何分类的?此外,如果我只调用 '=classify(A1)',我会得到

Text
Text

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

【问题讨论】:

  • 您在 A1 中是否有一个公式可能使其他单元格不稳定?
  • 在按回车之前是否清除输出?也许输出窗格中仍然显示旧值。

标签: vba excel


【解决方案1】:

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

Cell A1:
=foo(A1)

Cell A2:
=classify(A1)

更新单元格 A1 时,我得到

1
Text

我认为这是因为单元格 A2 引用了 A1,因此通过更新 A1,我还调用了 A2 中的公式,因为它引用了 A1。

假设您输入的公式在 A1 中,我会追踪依赖项以查看另一个公式在哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多