Excel Precedents.Count 在单元格公式中返回不正确的值

Excel Precedents.Count 在单元格公式中返回不正确的值

Excel 属性Precedents.Count在单元格公式中返回的值与在直接窗口中调用相同函数时显示的值不同。

请参阅下面的功能和测试代码。

Function CountPrecedents()
  CountPrecedents = Range("A1").Precedents.Count
End Function

Sub TestCountPrecedents()
  Range("A1").Formula = "=B1+B2"
  Range("C1").Formula = "=CountPrecedents()"
  Debug.Print "The cell value is " & Range("C1").Value
  Debug.Print "The true function value is " & CountPrecedents()
End Sub

TestCountPrecedents在立即窗口中运行将产生以下输出:

The cell value is 1
The true function value is 2

为什么单元格函数的值与直接窗口的值不同?我无法使用其他Range属性复制此行为。

答案1

这是在基于单元格的中使用此属性的限制UDF()

如果从子程序内部调用,相同的 UDF 将正常运行:

Sub MAIN()
    MsgBox CountPrecedents()
End Sub

相关内容