我有型号代码:
Dim a(1 To 100) As Integer
Function func1(i As Integer)
a(Application.Caller.Row) = i
Debug.Print "func1: " & Application.Caller.Row & " - " & i
func1 = "value"
End Function
Function func2(r As Range)
func2 = "other"
If (a(Application.Caller.Row) > 50) Then
func2 = "other"
Else
func2 = "first"
End If
Debug.Print "func2: " & Application.Caller.Row & " - " & a(Application.Caller.Row)
End Function
和电子表格:
col A col B Col C
51 = func1(A1)= func2(B1)
9 = func1(A2)= func2(B2)
8 = func1(A3)= func2(B3)
如果我使用Col C对表进行排序,我会执行以下操作:
func1:3 - 8
func2:3 - 8
func1:2 - 9
func2:2 - 9
func2:1 - 8< - func2在func1之前调用,在这种情况下提供incorect值..
func1:1 - 51
如果我计算表格,我仍然得到相同的序列:
func1:3 - 8
func2:3 - 8
func1:2 - 9
func2:2 - 9
func2:1 - 51< - func2在func1之前调用
func1:1 - 51
Excel 2010 32位(最新版本)Windows 7 64位
答案 0 :(得分:0)
目前,C列实际上是func2(func1(A))。 作为一个简单的修复,你可以定义func3()= funct2(func1()),这将消除C对B的依赖?