核心结论是 VB 也就是 VBA 的变量名命名有一套固定语法规则,同时还有行业通用的推荐命名规范,语法规则属于硬性要求,不满足就会直接报错无法运行,推荐规范属于编码习惯,不会报错但是会影响代码可读性,变量名是用来标识变量的名称,命名的时候必须以字母开头,不能使用关键字,不能包含空格和特殊符号,长度有限制,VB 里面变量名不区分大小写,很多新手经常踩坑,把关键字拿来当变量名,或者名字里面加空格,运行的时候直接提示语法错误,学习的时候要把硬性语法规则和推荐命名习惯分开记忆,写代码的时候优先遵守硬性规则,再配合推荐命名风格,方便自己和别人读懂代码。
一 硬性语法规则 必须遵守
1 变量名第一个字符必须是字母,不能以数字 下划线以外符号开头,比如 1num 这种写法是错误的
2 变量名里面可以包含字母 数字 下划线,但是不能有空格 减号 斜杠 感叹号等特殊符号,比如 user name 中间带空格属于非法命名
3 不能使用 VB 保留关键字作为变量名,关键字是系统自带命令,比如 Dim If For Next Sub Integer 这些,不能拿来当变量名称
4 变量名最大长度不能超过 255 个字符,实际开发一般不会写这么长
5 VB 变量名不区分大小写,Num num NUM 会被识别成同一个变量
6 同一个过程内部,变量名不能重复定义,同名变量会产生冲突报错
二 推荐命名规范 行业习惯
1 匈牙利命名法是 VB 最常用风格,变量名前面加上类型前缀,方便一眼看出变量数据类型
常用前缀清单
str 代表字符串 例 strName
int 代表整数 例 intCount
lng 代表长整数 例 lngTotal
bol 代表布尔值 例 bolFlag
dbl 代表双精度小数 例 dblPrice
obj 代表对象 例 objSheet
2 变量名尽量做到见名知意,不要使用 a b c 这种无意义短名字,除非是循环临时变量
3 单词之间推荐使用下划线分隔,比如 int_user_count,也可以使用驼峰写法 intUserCount,两种风格都可以,但是同一个项目尽量统一风格
4 变量名不要过长,兼顾可读性和简洁,不要堆砌太多单词
三 合法与非法命名对比表格
| 变量名 | 是否合法 | 说明 |
|---|---|---|
| intCount | 合法 | 字母开头 带类型前缀 |
| str_UserName | 合法 | 下划线分隔 字符串变量 |
| 123num | 非法 | 数字开头 |
| user name | 非法 | 名称里面带空格 |
| If | 非法 | 属于 VB 关键字 |
| int Count | 非法 | 空格分隔 |
四 补充重点注意事项
第一 虽然语法允许中文作为变量名,但是不推荐使用中文变量名,跨电脑 跨版本运行容易出现编码报错
第二 循环临时变量,比如 For 循环里面的 i j k,行业习惯可以简化命名,不需要严格加类型前缀
第三 如果开启 Option Explicit 强制声明,变量必须先 Dim 声明,命名错误会在编译阶段就提示,这个是写 VB 代码很好的习惯
第四 不要和系统内置对象重名,比如 Sheet Range Workbook 这类对象名称,不建议拿来做变量名,容易混淆代码逻辑
【常见问题】
问题 1 vb 变量名命名规则里面能不能使用关键字
回答 1 vb 变量名命名规则里面不可以使用关键字,Dim If For 这类保留关键字属于系统命令,拿来做变量名会直接语法报错
问题 2 vb 变量名命名规则区分大小写吗
回答 2 vb 变量名命名规则本身不区分大小写,Num num 会被识别成同一个变量,但是推荐统一书写风格,提升代码可读性
问题 3 vb 变量名命名规则里面可以带空格吗
回答 3 vb 变量名命名规则里面不可以带空格,名称内部出现空格属于非法写法,单词分隔推荐改用下划线或者驼峰写法
【免责申明】
本内容为 VB 变量名命名规则知识点讲解,仅供学习参考,不同 VB 版本语法细节基本一致,正式项目编码请结合团队编码规范执行。


