码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Excel-VBA 快速上手(十一、字符串常用操作)



    文章目录

    • 1. 字符串截取
      • 1.1. 左侧截取
      • 1.2. 右侧截取
      • 1.3. 中间截取
    • 2. 字符串拆分成数组
    • 3. 数组拼接成字符串
    • 4. 字符串拼接
    • 5. 字符串查找
      • 5.1. 从前向后查找
      • 5.2. 从后向前查找
    • 6. 字符串替换
      • 6.1. 替换指定字符
      • 6.2. 从指定位置开始替换
    • 7. 字符串转大小写
      • 7.1. 字符串转大写
      • 7.2. 字符串转小写
      • 7.3 自由转换
    • 8. 字符串去除空格
      • 8.1. 去除左侧空格
      • 8.2. 去除右侧空格
      • 8.3. 去除两侧空格
    • 9. 字符 与 ASCII 码转换
      • 9.1. 字符 转 ASCII 码
      • 9.2. ASCII 码 转字符
      • 9.3 换行符、回车的 ASCII 码
    • 10. 生成字符
      • 10.1. 生成多个空格
      • 10.2. 生成多个相同字符
    • 11. 从字符串中提取开头的数字

    1. 字符串截取


    1.1. 左侧截取


    从字符串的左侧开始,截取指定数量的字符,语法:Left(字符串, 截取的字符数量)

    Public Sub main()
      Dim str As String
      str = "这是一个字符串"
      Debug.Print Left(str, 2) '结果:这是
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.2. 右侧截取


    从字符串的右侧开始,截取指定数量的字符,语法:Right(字符串, 截取的字符数量)

    Public Sub main()
      Dim str As String
      str = "这是一个字符串"
      Debug.Print Right(str, 2) '结果:符串
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.3. 中间截取


    指定截取的起始位置和要截取的字符数,语法:Mid(字符串, 截取的起始位置, 截取的字符数量)

    Public Sub main()
      Dim str As String
      str = "这是一个字符串"
      Debug.Print Mid(str, 2, 3) '结果:是一个
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3. 数组拼接成字符串


    将数组拼接成字符串,语法:Join(字符串, 连接字符)

    Public Sub main()
      Dim items
      items = Array("中国", "辽宁省", "大连市")
      Dim str As String
      str = Join(items, "-")
      Debug.Print str '结果: 中国-辽宁省-大连市
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4. 字符串拼接


    建议用 & 符号做字符串拼接,用 + 的时候不能拼接数值类型

    Public Sub main()
      'Debug.Print "iphone" + 13, 这句话语法错误,提示:类型不匹配
      Debug.Print "iphone" & 13
    End Sub
    
    • 1
    • 2
    • 3
    • 4

    5. 字符串查找


    5.1. 从前向后查找


    从前向后查找字符最先出现的位置,并将位置返回,语法:InStr(字符串, 要查找的字符)

    Public Sub main()
      Debug.Print InStr("这是一个示例,一个字符串查找的功能", "一个") '结果:3
    End Sub
    
    • 1
    • 2
    • 3

    5.2. 从后向前查找


    从后向前查找字符最先出现的位置,并将位置返回,语法:InStrRev(字符串, 要查找的字符)

    Public Sub main()
      Debug.Print InStrRev("这是一个示例,一个字符串查找的功能", "一个") '结果:8
    End Sub
    
    • 1
    • 2
    • 3

    6. 字符串替换


    6.1. 替换指定字符


    在字符串中用新字符替换指定的旧字符,并返回替换后的新字符串,语法:Replace(字符串, 旧字符, 新字符)

    Public Sub main()
      Debug.Print Replace("这是一个示例", "示例", "Demo") '结果:这是一个Demo
    End Sub
    
    • 1
    • 2
    • 3

    6.2. 从指定位置开始替换


    在字符串中指定替换的起始位置和替换字符数量,语法:Mid(字符串,替换起始位置,替换字符数) = 新字符

    Public Sub main()
      Debug.Print Mid("这是一个示例", 5, 2) = "Demo" '结果:这是一个Demo
    End Sub
    
    • 1
    • 2
    • 3

    7. 字符串转大小写


    7.1. 字符串转大写

    Public Sub main()
      Debug.Print UCase("my name is ares5k")
    End Sub
    
    • 1
    • 2
    • 3

    7.2. 字符串转小写

    Public Sub main()
      Debug.Print LCase("MY NAME IS ARES5K")
    End Sub
    
    • 1
    • 2
    • 3

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    8. 字符串去除空格


    8.1. 去除左侧空格

    Public Sub main()
      Debug.Print LTrim("  去除左侧空格  ")
    End Sub
    
    • 1
    • 2
    • 3

    8.2. 去除右侧空格

    Public Sub main()
      Debug.Print RTrim("  去除左侧空格  ")
    End Sub
    
    • 1
    • 2
    • 3

    8.3. 去除两侧空格

    Public Sub main()
      Debug.Print Trim("  去除左侧空格  ")
    End Sub
    
    • 1
    • 2
    • 3

    9. 字符 与 ASCII 码转换


    9.1. 字符 转 ASCII 码

    Public Sub main()
      Debug.Print Asc("A")
    End Sub
    
    • 1
    • 2
    • 3

    9.2. ASCII 码 转字符

    Public Sub main()
      Debug.Print Chr(97)
    End Sub
    
    • 1
    • 2
    • 3

    9.3 换行符、回车的 ASCII 码

    使用 ASCII 码和全局变量都可以

    ASCII 码全局变量描述
    10vbCr换行
    30vbLf回车
    13vbCrLf回车换行

    10. 生成字符


    10.1. 生成多个空格

    Public Sub main()
      Debug.Print Space(6)
    End Sub
    
    • 1
    • 2
    • 3

    10.2. 生成多个相同字符

    Public Sub main()
      Debug.Print String(6, "a") '结果: aaaaaa
    End Sub
    
    • 1
    • 2
    • 3

    11. 从字符串中提取开头的数字

    这种字符串必须数字开头,然后将开头的数字提取出来

    Public Sub main()
      Debug.Print Val("88个苹果") '结果:88
    End Sub
    
    • 1
    • 2
    • 3
  • 相关阅读:
    通信算法之189: 信道检测- MRC
    【Java面试】听说Java求职者/面试官都关注了我,这道面试题一个空Object对象的占多大空间?你答的上来吗
    ElasticSearch统计总数据量
    C# MES通信从入门到精通(1)——串口传输文件
    java计算机毕业设计高校社团管理系统MyBatis+系统+LW文档+源码+调试部署
    一维前缀和[模版]
    Maven 聚合工程的创建
    C++中HANDLE句柄的概念
    Java、Go、Rust大比拼,高并发时代谁能称雄?
    巨子生物在香港上市:薇娅突击入股,范代娣、严建亚夫妇提前套现
  • 原文地址:https://blog.csdn.net/Ares5kong/article/details/125989785
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号