网站地图怎样做,专业生产车间设计图纸网站,旅游网络营销策划方案,信誉好的福州网站建设前言
在VBA程序中#xff0c;常用的内置函数可以按照功能分为字符串函数、数字函数、转换函数等等#xff0c;本节主要会介绍常用的字符串的内置函数#xff0c;包括Len()、Left()、Mid()、Right()、Split()、String()、StrConV()等。 本节的练习数据表以下表为例#xff…前言
在VBA程序中常用的内置函数可以按照功能分为字符串函数、数字函数、转换函数等等本节主要会介绍常用的字符串的内置函数包括Len()、Left()、Mid()、Right()、Split()、String()、StrConV()等。 本节的练习数据表以下表为例 1.使用Len()计算字符串长度
示例
Sheet1的A列是商品的ID编码现需要检查商品编码是否正确其中正确的商品编码应该为10位字符组成最终需在B列记录检查结果。完整的代码如下
Sub LenTest()Dim ws As Worksheet 声明变量用来存储worksheet对象Dim lastRow As IntegerDim i As Integer 设置worksheetSet ws ThisWorkbook.Worksheets(Sheet1) 获取工作表的最大行数lastRow ws.Cells(ws.Rows.Count, A).End(xlUp).Row 循环遍历查询,因第一行为表头故从第二行开始循环For i 2 To lastRow 判断A列值的长度是否等于10If Len(ws.Cells(i, A).Value) 10 Thenws.Cells(i, B).Value TrueElsews.Cells(i, B).Value FalseEnd IfNext iEnd Sub
2.字符串截取函数Left、Mid、Right
若需要提取字符串中的某一部分时则可以通过函数Left()、Mid()、Right()函数来进行实现。
函数语法说明Left()Left(String,Length)获取字符串从左开始截取指定数量Length的字符串Mid()Mid(String,Start,Length)获取字符串从固定位置Start开始截取指定数量Length的字符串Right()Right(String,Length)获取字符串从右开始截取指定数量Length的字符串
说明
String是需要处理的字符串 Length表示需要截取字符串的长度其中Mid()函数中的Length为非必填项 Start是Mid()函数中用来表示从左数第几个字符开始若length未填则表示一直截取到最后
示例
在Sheet1中C列为商品的产品型号由品牌、名称、型号构成现需要将产品型号进行拆分后在F、G、H 三列中的别填入品牌、名称、型号信息完整的代码如下
Sub StringTest()Dim ws As Worksheet 声明变量用来存储worksheet对象Dim lastRow As IntegerDim i As Integer 设置worksheetSet ws ThisWorkbook.Worksheets(Sheet1) 获取工作表的最大行数lastRow ws.Cells(ws.Rows.Count, C).End(xlUp).Row 循环遍历查询,因第一行为表头故从第二行开始循环For i 2 To lastRow 获取品牌--从左取3个字符ws.Cells(i, F).Value Left(ws.Cells(i, C).Value, 3) 获取名称--从第5个字符开始取4位ws.Cells(i, G).Value Mid(ws.Cells(i, C).Value, 5, 4) 获取型号--从右取3个字符ws.Cells(i, H).Value Right(ws.Cells(i, C).Value, 3)Next iEnd Sub运行后截图 3. 字符串分割Split()
使用Split()可以按照固定的分隔符对字符串进行分割最终返回类型为数组默认数组下标从0开始 如以上案例中C列的产品型号由品牌、名称、型号构成三者之间通过“-”进行连接那么在拆分时也可以通过“-”来进行分割处理完整的代码如下
Sub StringTest()Dim ws As Worksheet 声明变量用来存储worksheet对象Dim lastRow As IntegerDim i As Integer 设置worksheetSet ws ThisWorkbook.Worksheets(Sheet1) 获取工作表的最大行数lastRow ws.Cells(ws.Rows.Count, C).End(xlUp).Row 循环遍历查询,因第一行为表头故从第二行开始循环For i 2 To lastRow 获取品牌--分割后获取数组下标为0ws.Cells(i, F).Value Split(ws.Cells(i, C).Value, -)(0) 获取名称--分割后获取数组下标为1ws.Cells(i, G).Value Split(ws.Cells(i, C).Value, -)(1) 获取型号--分割后获取数组下标为2ws.Cells(i, H).Value Split(ws.Cells(i, C).Value, -)(2)Next iEnd Sub4. String()可生成重复字符串
String(Number,Char) 函数用于生成指定长度Number的重复的字符串Char
示例
在sheet1中J列为联系电话为保护联系人的隐私现需要将其电话号码的中间四位数字隐藏使用星号*代替。
思路
先通过Mid() 函数提取出联系电话中间的四位数字随后使用Replace()函数进行替换替换后的字符串使用String()来定义完成的代码如下
Sub StringTest()Dim ws As Worksheet 声明变量用来存储worksheet对象Dim lastRow As IntegerDim i As IntegerDim strTel As String 定义联系电话变量 设置worksheetSet ws ThisWorkbook.Worksheets(Sheet1) 获取工作表的最大行数lastRow ws.Cells(ws.Rows.Count, C).End(xlUp).Row 循环遍历查询,因第一行为表头故从第二行开始循环For i 2 To lastRow 替换联系电话中间四位数字为四个星号*strTel ws.Cells(i, J).Valuews.Cells(i, J).Value Replace(strTel, Mid(strTel, 4, 4), String(4, *))Next iEnd Sub运行后截图 5. StrConV()转换字符串
StrConv()函数可以实现对字符串英文的大小写转换还能实现其他类型的一些转换主要用法是StrConv(String,Conversion,LCID)其中String表示待处理的字符串Conversion表示执行转换的类型LCID为可选参数表示与系统LocaleID不同则为LocaleID。
关于Conversion转换类型可参考下表总结
常量名称值说明vbUpperCase1将字符串转换成全部大写形式vbLowerCase2将字符串转换成全部小写形式vbProperCase3将字符串转换成首字母大写形式vbWide4将字符串中的单字节字符转换成双字节字符vbNarrow8将字符串中的双字节字符转换成单字节字符vbUnicode64将字符串根据系统的默认编码转换成UnicodevbFromUnicode128将字符串由Unicode转换成系统的默认编码
示例
在Sheet1的I列联系人中为规范格式先需要将该列内容统一修改为首字母大写的形式完整的代码如下
Sub StringTest()Dim ws As Worksheet 声明变量用来存储worksheet对象Dim lastRow As IntegerDim i As Integer 设置worksheetSet ws ThisWorkbook.Worksheets(Sheet1) 获取工作表的最大行数lastRow ws.Cells(ws.Rows.Count, C).End(xlUp).Row 循环遍历查询,因第一行为表头故从第二行开始循环For i 2 To lastRow 修改I列 联系人的格式为首字母大写ws.Cells(i, I).Value StrConv(ws.Cells(i, I).Value, vbProperCase)Next iEnd Sub
运行后截图 扩展
以下表格整理了字符串常用的字符串函数
函数返回类型功能示例返回值StrComp(字符串1字符串2, [,比较])VariantInteger比较两个字符串。字符串1字符串2返回值-1字符串1字符串2返回值0字符串1字符串2返回值1StrComp(“AE”,“FS4”)-1StrConv(字符串,数字)String变换字符串。数字为1时将字符串内容转换成大写数字为2时将字符串转换成小写…StrConv(“fghh”,1)StrConv(“AAhh”,2)“FGHH”;“aahh”Format(字符串可选参数)VariantString设置字符串格式Format(Date,“Long Date”)“2024年7月5日”LCase(字符串)String将字符串转换成小写LCase(“LoNg”)“long”UCase(字符串)String将字符串转换成大写UCase(“LoNg”)“LONG”Space(长度)String将字符串中插入整个空格“Hi” Space(2) “World”“Hi World”String(长度字符)String重复数个字符String(5,“*”)“*****”Len(字符串)Long计算字符串的长度Len(“Customer”)8InStr([开始位置,]字符串1,字符串2[,比较])VariantLong字符串2在字符串1中最先出现的位置若不存在则返回0InStr(1,“GHmdml”,“m”)3Left(字符,长度)String从左起取指定个数的字符Left(“fdgm32”,4)“Fdgm”Right(字符,长度)String从右起取指定个数的字符Right(“fdgm32”,4)“gm32”Mid(字符,开始位置[,长度])String从开始位置起取指定个数的字符Mid(“fdgm3245”,4,3)“324”LTrim(字符串)String去掉字符串左边的空格LTrim( ghd )ghd RTrim(字符串)String去掉字符串右边的空格RTrim( ghd ) ghdTrim(字符串)String去掉字符串前后两边的空格Trim( ghd )“ghd”Asc(字符串)Integer字符串收字裤的ASCII代码Asc(“abc”)97Chr(数字)String将数字转换成ASCII代码执行的字符Chr(65)“A”Str(数字)String将数字转换成字符串Str(54)“54”Val(字符串)Variant字符串转换成数字Val(“54D5SL23”)54000000