【发布时间】:2014-07-15 21:50:06
【问题描述】:
在excel中我有以下
a1 = "a" b1:b3 = {=UDFtest(A1:A3)}
a2 = "b"
a3 = "c"
Public Function UDFtest(labelsRange As Range)
' myCaller = Application.Caller
' outputNumRows = UBound(myCaller, 1) - LBound(myCaller, 1) + 1
' outputNumCols = UBound(myCaller, 2) - LBound(myCaller, 2) + 1
myNumRows = 3
myData = Array(Array(1), Array(2), Array(3))
myLabels = Array("a", "b", "c")
' If myNumRows = outputNumRows Then
For i = 0 To myNumRows - 1
If labelsRange.Cells(i + 1, 1).Value <> myLabels(i) Then
myData(i, 0) = xlErrRef
End If
Next i
' Else
' UDFtest = xlErrRef
' Exit Function
' End If
UDFtest = myData
End Function
'myData' 和 'myLabels' 将通过 api 调用提供给我。我的目标是在检查用户的标签是否正确后返回 myData。
上面的代码按预期工作,(因为我已经注释掉了多余的行)。 但是,如果我取消注释这些行,excel 会给我一个循环引用错误。
如何修复循环引用?
【问题讨论】:
标签: excel user-defined-functions circular-reference vba