当前位置:网站首页>Excel-VBA 快速上手(十一、字符串常用操作)
Excel-VBA 快速上手(十一、字符串常用操作)
2022-07-26 18:59:00 【三叔笔记】
文章目录
1. 字符串截取
1.1. 左侧截取
从字符串的左侧开始,截取指定数量的字符,语法:Left(字符串, 截取的字符数量)
Public Sub main()
Dim str As String
str = "这是一个字符串"
Debug.Print Left(str, 2) '结果:这是
End Sub
1.2. 右侧截取
从字符串的右侧开始,截取指定数量的字符,语法:Right(字符串, 截取的字符数量)
Public Sub main()
Dim str As String
str = "这是一个字符串"
Debug.Print Right(str, 2) '结果:符串
End Sub
1.3. 中间截取
指定截取的起始位置和要截取的字符数,语法:Mid(字符串, 截取的起始位置, 截取的字符数量)
Public Sub main()
Dim str As String
str = "这是一个字符串"
Debug.Print Mid(str, 2, 3) '结果:是一个
End Sub
2. 字符串拆分成数组
将字符串分割为数组,语法:Split(字符串, 分割基准字符)
Public Sub main()
Dim str As String
str = "中国-辽宁省-大连市"
Dim item
'以 "-" 为基准,将字符串分割成数组
item = Split(str, "-")
Debug.Print item(0)
Debug.Print item(1)
Debug.Print item(2)
End Sub
3. 数组拼接成字符串
将数组拼接成字符串,语法:Join(字符串, 连接字符)
Public Sub main()
Dim items
items = Array("中国", "辽宁省", "大连市")
Dim str As String
str = Join(items, "-")
Debug.Print str '结果: 中国-辽宁省-大连市
End Sub
4. 字符串拼接
建议用 & 符号做字符串拼接,用 + 的时候不能拼接数值类型
Public Sub main()
'Debug.Print "iphone" + 13, 这句话语法错误,提示:类型不匹配
Debug.Print "iphone" & 13
End Sub
5. 字符串查找
5.1. 从前向后查找
从前向后查找字符最先出现的位置,并将位置返回,语法:InStr(字符串, 要查找的字符)
Public Sub main()
Debug.Print InStr("这是一个示例,一个字符串查找的功能", "一个") '结果:3
End Sub
5.2. 从后向前查找
从后向前查找字符最先出现的位置,并将位置返回,语法:InStrRev(字符串, 要查找的字符)
Public Sub main()
Debug.Print InStrRev("这是一个示例,一个字符串查找的功能", "一个") '结果:8
End Sub
6. 字符串替换
6.1. 替换指定字符
在字符串中用新字符替换指定的旧字符,并返回替换后的新字符串,语法:Replace(字符串, 旧字符, 新字符)
Public Sub main()
Debug.Print Replace("这是一个示例", "示例", "Demo") '结果:这是一个Demo
End Sub
6.2. 从指定位置开始替换
在字符串中指定替换的起始位置和替换字符数量,语法:Mid(字符串,替换起始位置,替换字符数) = 新字符
Public Sub main()
Debug.Print Mid("这是一个示例", 5, 2) = "Demo" '结果:这是一个Demo
End Sub
7. 字符串转大小写
7.1. 字符串转大写
Public Sub main()
Debug.Print UCase("my name is ares5k")
End Sub
7.2. 字符串转小写
Public Sub main()
Debug.Print LCase("MY NAME IS ARES5K")
End Sub
7.3 自由转换
相同函数,通过传入不同参数决定转成大写还是小写,相对自由一点,语法:VBA.StrConv(字符串, 转换类型)
转换类型
| 类型名称 | 类名值 |
|---|---|
| 大写 | vbUpperCase |
| 小写 | vbLowerCase |
| 首字母大写 | vbProperCase |
示例代码
Public Sub main()
Debug.Print VBA.StrConv("my name is ares5k", vbUpperCase) '大写
Debug.Print VBA.StrConv("MY NAME IS ARES5K", vbLowerCase) '小写
Debug.Print VBA.StrConv("MY NAME IS ARES5K", vbProperCase) '首字母小写
End Sub
8. 字符串去除空格
8.1. 去除左侧空格
Public Sub main()
Debug.Print LTrim(" 去除左侧空格 ")
End Sub
8.2. 去除右侧空格
Public Sub main()
Debug.Print RTrim(" 去除左侧空格 ")
End Sub
8.3. 去除两侧空格
Public Sub main()
Debug.Print Trim(" 去除左侧空格 ")
End Sub
9. 字符 与 ASCII 码转换
9.1. 字符 转 ASCII 码
Public Sub main()
Debug.Print Asc("A")
End Sub
9.2. ASCII 码 转字符
Public Sub main()
Debug.Print Chr(97)
End Sub
9.3 换行符、回车的 ASCII 码
使用 ASCII 码和全局变量都可以
| ASCII 码 | 全局变量 | 描述 |
|---|---|---|
| 10 | vbCr | 换行 |
| 30 | vbLf | 回车 |
| 13 | vbCrLf | 回车换行 |
10. 生成字符
10.1. 生成多个空格
Public Sub main()
Debug.Print Space(6)
End Sub
10.2. 生成多个相同字符
Public Sub main()
Debug.Print String(6, "a") '结果: aaaaaa
End Sub
11. 从字符串中提取开头的数字
这种字符串必须数字开头,然后将开头的数字提取出来
Public Sub main()
Debug.Print Val("88个苹果") '结果:88
End Sub
边栏推荐
- Leetcode daily practice - 189. Rotation array
- Redis introduction
- 基于华为云 IOT 设计智能称重系统 (STM32)【一】
- [MySQL must know and know] log details
- Deeply analyze the execution process of worker threads in the thread pool through the source code
- The authentication type 10 is not supported
- 【实习经验】日期校验
- openstack 虚拟机网卡被重名为cirename0
- Linux regularly backs up the database and deletes the data n days ago
- 中信建投启牛学堂开户是安全的吗,启牛是干嘛的
猜你喜欢

拿铁DHT-PHEV产品响当当,销量会不会让李瑞峰想通了呢?

Ijcai2022 meeting! Brescia et al. Tutorial of evidential reasoning and learning, describing its latest progress, with 96 slides attached

Redis6

负载均衡的使用

Chapter 9 practical modeling technology

u盘损坏怎么恢复原来数据,u盘损坏数据如何恢复

【MySQL】 - 索引原理与使用

2022/07/26 学习笔记 (day16) 抽象与接口

Zhongtian steel uses tdengine in GPS and AIS scheduling

DOM case: 10 second countdown - write jump page related knowledge
随机推荐
jar文件 反编译(IDEA环境)
Household deposits increased by 10.33 trillion yuan in the first half of the year, with an average of 57.1 billion deposits pouring into banks every day
LeetCode每日一练 —— 88. 合并两个有序数组
Adjust the array order so that odd numbers precede even numbers and their relative positions remain the same
Pyqt5 rapid development and practice 3.6 packaging resource files
Redis6
MySQL 子查询使用方式
Is it safe for CSCI qiniu school to open an account? What is qiniu for
MySQL subquery usage
Method of replacing Chinese characters with PHP
【OBS】Dropped Frames And General Connection Issues
Detailed explanation of Yolo v1
2022/07/26 学习笔记 (day16) 抽象与接口
基于华为云 IOT 设计智能称重系统 (STM32)【一】
聊聊如何用 Redis 实现分布式锁?
PyQt5快速开发与实战 3.6 打包资源文件
靠元宇宙和NFT,天下秀疯狂“割韭菜”?
2022/07/26 learning notes (day16) abstraction and interface
IM即时通讯开发如何压缩移动网络下APP的流量消耗
How to uninstall win11 edge? The method tutorial of completely uninstalling win11 edge browser