以下是引用爱疯在2010-3-9 20:12:00的发言:谢谢八月院长、飞版! 学习了! 平时,用惯sub了,所以看到function,不自己就迟钝些了。这样总结对么? 在外,必须全副武装(带参),如 ReDim arr(b(5)); 在内,摘盔卸甲也可(不带参),如 b = x + 1。也可带参,如 b(x) = x + 1。 PS:加粗部分,没把握 [em04] 这个要看怎么理解function。自定义函数可以返回一个数值,也可以返回一个数组。 像这样只定义一个function函数而不指定返回类型的话,根据自定义函数代码来确定返回类型,可以是一个Variant类型的值,也可以是一个Variant类型的数组。 Function b(x) End Function 在外部调用自定义函数b时,需要确定返回的值是什么。 ReDim arr(b)的错误之处是没有给自定义函数传递值,如果你定义为x为Optional参数的话,也可以直接使用arr(b) Sub a() Dim arr ReDim arr(b) Stop End Sub Function b(Optional x = 0) b = x + 1 End Function 在内部的话,也不可以使用b(x) = x + 1。 |