循环引用是用户定义的函数VBA excel

我的目标是使用用户定义的函数在实际行中添加某些列的值。 列在另一个表中给出。 我正在读取行的名称,计算实际值并将它们相加。 这个函数从excel中调用一次,但执行了4次。 最后,它表示循环引用错误。 在excel文件中没有这样的错误,我检查了udf是否返回42,然后没有错误。 首先我怀疑Application.Caller,但排除。

Function SumColumnsWithSuffix(suffix As String, rowNumber) As Integer 'can be used only in Összesíto table Dim myTable As Excel.ListObject Dim mySheet As Excel.Worksheet Dim myRow As Excel.ListRow Set mySheet = ThisWorkbook.Worksheets("összesíto") Set myTable = mySheet.ListObjects("Számlák") Dim columnName As String result = 0 For Each myRow In myTable.ListRows columnName = Intersect(myRow.Range, myTable.ListColumns("Oszlop név").Range) columnName = "Összesíto[" & columnName & " " & suffix & "]" 'actualRow = Application.Caller.row 'rowName = actualRow & ":" & actualRow rowName = rowNumber & ":" & rowNumber myRowRange = Range(rowName) actualValue = Intersect(Range(columnName), Range(rowName)) result = result + actualValue Next myRow SumColumnsWithSuffix = result End Function 

myRowRange没有显式声明(或实际使用),所以它隐式地是Variant 。 这意味着你的任务在这里…

 myRowRange = Range(rowName) 

…也在对.Value进行隐式调用。 该调用将评估Range(rowName)中每个单元格的结果,以填充返回的Variant数组。 如果这些单元格中的任何一个包含对SumColumnsWithSuffix的调用,您将得到一个循环引用。