STR 函数怎么用,这里要区分两种场景,一种是 Excel 里面的 STR 函数,另一种是 VB VBA 里面的 Str 函数,考试最常考的是 VBA 的 Str 函数,它的核心作用是把数值类型的数据转换成对应的字符串文本,也就是数字转字符串,很多初学者会把它和 MID LEFT RIGHT 这类截取函数搞混,STR 并不是截取字符,它是类型转换函数,输入是数字,输出是文本形式的数字,这个是最核心的特点,VBA 的 Str 函数还有一个很容易踩坑的细节,当传入的数字是正数的时候,转换之后字符串最前面会自动保留一个空格,这个空格是用来预留正负号位置,负数的时候这个位置会显示负号,这个细节是选择题和编程题高频考点,很多同学忽略这个前置空格,导致结果比对出错,学习的时候要掌握函数语法,返回值特点,正数前置空格特性,还有和 CStr 函数的区别。
核心运行原理
VBA Str 函数语法格式是 Str number,number 参数可以是整数 小数 数值变量,也可以是表达式计算出来的数值,函数执行的时候,读取这个数值,按照默认格式转为文本字符串,正数的时候首位是空格,负数首位是减号,小数会保留原本的小数点,不会自动四舍五入,它是 VBA 内置函数,不需要额外加载控件,写在宏代码里面直接调用,Excel 工作表单元格里面没有原生 STR 函数,工作表对应的数字转文本函数是 TEXT,这点一定要分清,很多人在工作表单元格输入 STR 会提示函数不存在,就是混淆了 VBA 函数和工作表函数。
学习使用步骤
1 确认环境,Str 函数属于 VBA 内置函数,不是 Excel 工作表函数
2 记住语法 Str number,number 填写数值或者数值变量
3 编写 VBA 代码,定义数值变量,调用 Str 函数,接收返回的字符串
4 测试正数案例,观察返回字符串前面自带空格
5 测试负数案例,观察返回字符串开头是负号
6 对比 CStr 函数,理解两者差别,CStr 正数不会前置空格
7 做编程习题,巩固正数前置空格这个考点
函数对照表
| 函数 | 所属环境 | 功能 | 正数是否前置空格 |
|---|---|---|---|
| Str | VBA | 数值转字符串 | 是,自动预留符号位空格 |
| CStr | VBA | 数值转字符串 | 否,没有前置空格 |
| TEXT | Excel 工作表 | 数值格式化转文本 | 无前置空格,可自定义格式 |
补充易错点
第一,Excel 单元格工作表不能直接使用 STR 函数,工作表要用 TEXT 函数实现数字转文本,这个是新手最常见错误。第二,Str 转换正数的时候前面那个空格不是多余错误,是函数固有特性,做题的时候不要认为是 bug。第三,Str 函数不会自定义小数位数,如果需要固定几位小数,要先用 Round 处理数值,再传给 Str。第四,不要把 Str 和字符串截取函数 MID 混淆,MID 是从已有字符串里面截取字符,Str 是数字转文本,功能完全不一样。第五,如果 number 传入非数值内容,代码运行会报错,参数必须是合法数值。
总结,STR 函数也就是 VBA 的 Str 函数,作用是将数值转换为字符串文本,语法 Str number,重点记住正数转换之后字符串开头自带空格,负数开头是负号,区分它和 CStr 以及 Excel 工作表 TEXT 函数,不要把它当成字符截取函数。
【常见问题】
问题 1 STR 函数怎么用 它是 Excel 工作表函数吗
回答 1 STR 函数怎么用,Str 函数是 VBA 内置函数,Excel 工作表单元格不能直接调用,工作表对应的同类功能是 TEXT 函数。
问题 2 STR 函数怎么用 正数转换为什么前面有空格
回答 1 STR 函数怎么用,Str 函数转换正数的时候,字符串首位会自动预留符号位空格,这个是函数固有特性,属于高频考点。
问题 3 STR 函数怎么用 Str 和 CStr 有什么区别
回答 1 STR 函数怎么用,Str 和 CStr 都可以数值转字符串,区别是 Str 正数会前置空格,CStr 正数没有前置空格。
问题 4 STR 函数怎么用 它是不是字符串截取函数
回答 1 STR 函数怎么用,Str 不是截取函数,它的功能是数值转文本字符串,截取字符要用 MID LEFT RIGHT 这类函数。
【免责申明】
本内容仅作为 VBA 编程学习参考,不同版本 Office 对内置函数行为细节基本一致,正式考试请以教材和考纲规定为准。


