ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 动画教程 > Excel VBA > 函数也可以做返回值以外的事

函数也可以做返回值以外的事

作者:绿色风 分类: 时间:2022-08-18 浏览:203
楼主
罗刚君
函数只能返回值,不能做其它事,其实这个规则仅对工作表函数有效
  1. Function 批注(rng As Range, text As String)
  2.     Dim cell As Range
  3.     For Each cell In rng
  4.     cell.ClearComments
  5.      If Len(text) > 0 Then cell.AddComment text
  6.     Next cell
  7. End Function
批量创建批注.gif
 
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过程也可以运算,但不会返回值

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap