楼主 罗刚君 |
函数只能返回值,不能做其它事,其实这个规则仅对工作表函数有效
|
2楼 CheryBTL |
向罗版学习学习** |
3楼 bensonlei |
有点意思!有时也可应用得上. |
4楼 ryueifu |
大家不要盲目相信 不信的话试试,下面2个函数 你们以为真的能替代Sub吗 测试一下Test2,就一切明白了. Function test1() MsgBox 59 End Function Function test2() Range("A1") = 69 Range("A1").Interior.Color = vbBlue End Function 在工作表的B2单元格输入公式 =Test2() ,回车,能出现什么? |
5楼 罗刚君 |
你的前提就错了。 你让大家不要盲目相信“替代Sub”,而事实上替代Sub的说法是你一人在说,其他任何人没有说过,当然包括一楼。 所以你劝大家不要盲目相信的,是一个不存在的事。前提就错了。 “函数也可以做返回值以外的事”和“函数能替代Sub”是截然不同的两种观点,外行也可以正常判断的吧。 前提不正确,结论就不正确了.... |
6楼 ryueifu |
虽然如此,但是不少人会以为真的像你那样,以为function无所不能呢 我还是建议大家改用以下方式.完成相同的任务. 不要弄玄的.容易引起Bug Sub 插入批注() Call 批注(Selection,"新批注") End Sub Sub 批注(rng As Range, text As String) Dim cell As Range For Each cell In rng cell.ClearComments If Len(text) > 0 Then cell.AddComment text Next cell End Sub |
7楼 罗刚君 |
从来没有人说过function无所不能 也不可能有人会以为function无所不能 既然微软设置了Sub和Function过程,就表示两者各有所长,如果一项能完全替代另一项,他就不会开发两个出来了。 这种担心是不必要的。 |
8楼 孙行者 |
sub 和 function 有什么不同啊?? |
9楼 義ち五/aiq囝 |
学习了 |
10楼 罗刚君 |
function的主要功能是运算,可以返回一个值 Sub过程也可以运算,但不会返回值 |