excel学习库

excel表格_excel函数公式大全_execl从入门到精通

「VBA」19.字符串常用操作汇总

前文介绍了一些常见报错,还有一些报错涉及未提到的知识点,将在以后的文章中介绍。

Excel的主体内容是单元格里的字符串,本文将介绍字符串的常用操作,全部学会后可以应对绝大多数针对Excel单元格内容的修改

我把字符串操作分为提取、替换删除、拼接、分割、去空格、获取长度、查找几类,以下一一介绍。下文中的代码都将声明旧字符串oldStr新字符串newStr两个变量作为例子。

提取

提取字符串的某一部分有三种方式:提取开头,提取中间,提取结尾,他们分别对应Left、Mid、Right三个函数。

  • Left

Left函数写成这样:Left(str,n)

Left函数可以提取字符串str左边的n字符,如以下代码:

Dim oldStr As String

Dim newStr As String

oldStr = "Hello World"

newStr = Left(oldStr, 4)

MsgBox newStr

代码中Left(oldStr, 4)会获得oldStr左边的4个字符,所以Msgbox会输出”Hell”。

注意:空格也是字符!

  • Mid

Mid函数写成这样:Mid(str,a,b)

Mid函数可以提取字符串str从a开始数的b个字符,如:

Dim oldStr As String

Dim newStr As String

oldStr = "Hello World"

newStr = Mid(oldStr, 4, 5)

MsgBox newStr

代码中Mid(oldStr, 4, 5)会获得oldStr中从第4个字符开始数的5个字符,即”lo Wo”。

  • Right

Left函数写成这样:Right(str,n)

Right函数可以提取字符串str边的n字符,如以下代码:

Dim oldStr As String

Dim newStr As String

oldStr = "Hello World"

newStr = Right(oldStr, 3)

MsgBox newStr

Right(oldStr, 3)会获得oldStr从右往左数的3个字符,所以Msgbox会输出”rld”。

替换和删除

字符串中要把某个子字符串替换成其他字符串或删掉,可以使用Replace函数。

  • Replace

Replace函数写成这样:Replace(str,a,b)

Replace 函数会把str里的所有a字符串替换成b字符串,如:

Dim oldStr As String

Dim newStr As String

oldStr = "Hello World"

newStr = Replace(oldStr, "o", "a")

MsgBox newStr

Replace(oldStr, "o", "a")会把oldStr里的”o”全部替换成”a”,这样Msgbox会输出”Hella Warld”。相同的,我们要删除某子字符串只需要把替换的内容b设置为空字符串””即可,如:

Dim oldStr As String

Dim newStr As String

oldStr = "Hello World"

newStr = Replace(oldStr, "o", "")

MsgBox newStr

这会输出”Hell Wrld”。

start

Replace函数还有其他参数,比如第三个参数start可以控制从什么位置返回子字符串,如使用Replace(oldStr, "o", "a",Start:=7),会从oldStr的第七个字符开始返回字符串,Msgbox会输出”Warld”。

count

Hello World里有两个”o”,所以默认会替换两次。如果想限制字符串替换次数,则可以设置replace函数的第四个参数count,Replace(oldStr, "o", "a", Count:=1)会限制只替换1次,所以Msgbox会输出”Hella World”。

Compare

第五个参数compare可以设置比对方式,比如我们要把”o”替换成”a”,那么要不要替换大写字母”o”呢,compare参数可以帮助我们设置:

compare设置成1,表示不区分大小写:

Dim oldStr As String

Dim newStr As String

oldStr = "HellO World"

newStr = Replace(oldStr, "o", "a", Compare:=1) '输出"Hella Warld"

MsgBox newStr

compare设置成0,表示区分大小写:

Dim oldStr As String

Dim newStr As String

oldStr = "HellO World"

newStr = Replace(oldStr, "o", "a", Compare:=0) '输出"HellO Warld"

MsgBox newStr

拼接

在过去的一篇介绍运算符的文章中,我曾提到过&运算符可以把两个字符串拼接起来:

a = "Ap"

b = "ple"

c = a & b

MsgBox c ‘输出”Apple”

分割

我们可以使用Split函数把”1,2,5,3,66,78”这样的字符串分割成数组:

str = "1,2,5,3,66,78"

arr= Split(str, ",")

这将在之后的数组一篇中详细介绍。

去空格

操作字符串时会因为种种原因把字符串变成这样:

”Hello World ”

” Hello World”

” Hello World ”

遇到这种两边多了一些空格的字符串往往令人烦恼。不过不用担心,因为我们有伟大的Trim函数!

Trim(str)可以直接把字符串str两边的空格一扫而空

Dim oldStr As String

Dim newStr As String

oldStr = " Hello World "

newStr = Trim(oldStr)

MsgBox newStr '输出"Hello World"

获得字符串长度

Len (str)可以获得字符串str的长度:

Dim str As String

str = "Hello World"

MsgBox Len(str) '输出11

查找

可以使用Instr函数查找字符串中的子字符串位置。

Instr函数这样写:InStr(a,b)

InStr(a,b)会获得字符串a中子字符串b的位置:

Dim str As String

str = "Hello World"

MsgBox InStr(str, "Wo") '输出7

掌握以上这些字符串的操作,处理绝大多数的文本已经绰绰有余了。下一篇我们来介绍新概念:数组

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接