VBS基础篇 - VBScript过程(使用sub 与 Function定义函数)
VBScript中,Sub过程无返回值,不能用于表达式;Function过程有返回值,可用于表达式。两者均支持参数传递,调用时若使用Call语句需将参数括在括号内,否则直接调用无需括号。Sub常用于执行动作,Function则返回计算结果。
日常写代码的时候,像循环输出、分页这类需要重复调用的功能,往往都会封装成过程函数来用。这既是代码复用的基本功,也是让逻辑更清晰的关键。
Sub 过程
Sub 过程,说白了就是一组放在 Sub 和 End Sub 之间的 VBScript 语句。如果 Sub 过程不需要任何参数,那 Sub 语句后面也得带着一对空括号 (),这是语法规定,别漏了。
举个简单例子:
Call GetName() '调用Sub过程 Sub GetName() MsgBox "我是" '输出字符串 End Sub
当然,Sub 过程也可以接收参数——就是调用时传进来的常数、变量或者表达式。稍微改一下上面的代码:
Call GetName("我是") '调用Sub
Sub GetName(name)
MsgBox name '输出字符串
End Sub
注意这个核心区别:Sub 过程是没有返回值的。 要是硬给它赋值,运行时就会直接报错。来看一个反面案例:
getName "" '调用过程 Sub getName(name) getName = name '设置返回值 End Sub
运行上面这段脚本,就会弹出下面这个错误提示。所以务必记住:Sub 过程只干活,不往回捎东西。

Function 过程
Function 过程与 Sub 过程结构类似,都是写在 Function 和 End Function 之间的语句块。如果无参数,同样需要空括号。来个基础示例:
Call GetName() '调用Function Function GetName() MsgBox "这里是" '输出字符串 End Function
带参数的情况:
Call GetName("这里是") '调用Function
Function GetName(name)
MsgBox name '输出字符串
End Function
Function 和 Sub 最大的不同就在这里——Function 是有返回值的。返回的方式是在过程内部把值赋给函数名,然后调用方就能拿到这个结果。返回值的数据类型一律是 Variant,所以不用纠结类型声明。看这个例子:
getName "这里是" '调用Function Function getName(name) getName = name '设置返回值 End Function
如何调用过程
调用 Function 过程时,函数名必须出现在变量赋值语句的右侧或者某个表达式中——因为你需要用它返回的值。而调用 Sub 过程就简单多了,直接写过程名,后面跟上参数,参数之间用逗号隔开即可。也可以用 Call 语句,但如果用了 Call,那就必须把所有参数都包在括号里。
下面两种写法效果完全一样,选哪一种看个人习惯:
getName "" '调用过程的第一种写法
Call getName("我是mdxy") '调用过程的第二种写法
Sub getName(name)
MsgBox "我是" & name
End Sub
最后再强调一下 Sub 与 Function 的核心区别:
- Sub 没有返回值,Function 有返回值。
- Sub 不能出现在表达式里,Function 则可以。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















