首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >排序时Excel重新计算顺序-如何正确处理?

排序时Excel重新计算顺序-如何正确处理?
EN

Stack Overflow用户
提问于 2013-06-25 20:03:03
回答 1查看 101关注 0票数 0

我有模型代码:

代码语言:javascript
运行
复制
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

和电子表格:

A列B C列

51 =函数1(A1)=函数2(B1)

9=函数1(A2)=函数2(B2)

8=函数1(A3)=函数2(B3)

如果我使用Col C对表进行排序,我会得到以下执行结果:

func1: 3-8

func2: 3-8

func1: 2-9

func2: 2-9

func2: 1-8 <--在func1之前调用的func2,在本例中提供incorect值。

func1: 1- 51

如果我计算工作表,我仍然得到相同的序列:

func1: 3-8

func2: 3-8

func1: 2-9

func2: 2-9

func2: 1- 51 <--在func1之前调用的func2

func1: 1- 51

Excel 2010 32位(sp最新版本) Windows 7 64位

EN

回答 1

Stack Overflow用户

发布于 2013-06-25 20:09:32

此时,C列实际上是func2(func1(A))。作为一个简单的修复方法,您可以定义func3() = funct2(func1()),这将消除C对B的依赖?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17296825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档