VBA字符串

本文详细介绍了字符串操作的基础知识和实用技巧,包括InStr和InStrRev函数的使用,用于查找子字符串的位置;LCase和UCase函数,用于转换字符串的大小写;以及Replace函数,用于替换字符串中的部分字符。此外,还涵盖了StrReverse函数,用于反转字符串,以及String函数,用于创建重复字符的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

字符串是一个字符序列,可以由字母,数字,特殊字符或全部字符组成。 如果一个变量被包含在双引号""中,则被认为是一个字符串。

语法:

variable_name = "this is a string"

 

1、InStr函数

语法:

InStr([start,]string1,string2[,compare])

参数说明

  • Start - 一个可选参数。指定搜索的起始位置。搜索从第一个位置开始,从左到右。
  • String1 - 必需的参数。要搜索的字符串。
  • String2 - 必需的参数。要在String1中搜索的字符串。
  • Compare - 一个可选参数。指定要使用的字符串比较。它可以采取以下提到的值:
    • 0 = vbBinaryCompare - 执行二进制比较(默认)
    • 1 = vbTextCompare - 执行文本比较

函数返回值分为0 和其他整数(绝对字符索引位置)

若搜索不到就返回0

Private Sub Constant_demo_Click() 
   Dim Var As Variant 
   Var = "Microsoft VBScript" 
   MsgBox ("Line 1 : " & InStr(1, Var, "s")) 
   MsgBox ("Line 2 : " & InStr(7, Var, "s")) 
   MsgBox ("Line 3 : " & InStr(1, Var, "f", 1)) 
   MsgBox ("Line 4 : " & InStr(1, Var, "t", 0)) 
   MsgBox ("Line 5 : " & InStr(1, Var, "i")) 
   MsgBox ("Line 6 : " & InStr(7, Var, "i")) 
   MsgBox ("Line 7 : " & InStr(Var, "VB")) 
End Sub

2、InStrRev

InStrRev()函数返回一个字符串在另一个字符串中的第一次出现。搜索从右到左。

InStrRev(string1,string2[,start,[compare]])

 

  • String1 - 必需的参数,要搜索的字符串。
  • String2 - 必需的参数。要在String1中搜索的字符串。
  • Start - 一个可选参数。指定搜索的起始位置。从右到左的第一个位置开始搜索。
  • Compare - 一个可选参数。指定要使用的字符串比较。 它可以采取以下提到的价值。
    • 0 = vbBinaryCompare - 执行二进制比较(默认)
    • 1 = vbTextCompare - 执行文本比较

其中Start参数是指定搜索的起始位置,比如指定start=5,那么搜索从o开始往左搜索,如果搜索s,则返回值为0.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & InStrRev(var,"s",10))
   msgbox("Line 2 : " & InStrRev(var,"s",7))
   msgbox("Line 3 : " & InStrRev(var,"f",-1,1))
   msgbox("Line 4 : " & InStrRev(var,"t",5))
   msgbox("Line 5 : " & InStrRev(var,"i",7))
   msgbox("Line 6 : " & InStrRev(var,"i",7))
   msgbox("Line 7 : " & InStrRev(var,"VB",1))
End Sub

3、LCase()

LCase()函数将输入的字符串转换为小写字母后返回字符串。

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & LCase(var))

   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & LCase(var))

   var = "microsoft"
   msgbox("Line 3 : " & LCase(var))
End Sub

4、UCase()将字符串转为大写字母

UCase函数将输入的字符串转换为大写字母后返回字符串。

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & UCase(var))

   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & UCase(var))

   var = "microsoft"
   msgbox("Line 3 : " & UCase(var))
End Sub
Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT

5、left/right/Mid和excel里面含义一样

8、Ltrim()函数删除字符串左侧的空格。

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "             Microsoft VBScript"
   msgbox "After Ltrim : " & LTrim(var)
End Sub

9、同Ltrim

11、Len函数

Len函数返回给定输入字符串的长度,包括空格。

12、Replace函数

Private Sub Constant_demo_Click()
   Dim var As Variant
   var = "VBAlesson"
   MsgBox "Repalce函数用法,原字符串“VBAlesson”,删除VBA后剩下 " & Replace(var, "VBA", "")
End Sub

13、Space函数用特定数量的空格填充字符串。

Private Sub Constant_demo_Click()
   Dim var1 as Variant

   var1 = "Microsoft"
   Dim var2 as Variant

   var2 = "VBScript"
   msgbox(var1 & Space(2)& var2)
End Sub

14、StrComp(string1,string2[,compare])

在比较两个给定字符串后,StrComp函数返回一个整数值。它可以根据要比较的输入字符串返回三个值:-1,01中的任何一个。如下 -

  • 如果 String1 < String2, 那么 StrComp 函数返回 -1
  • 如果 String1 = String2, 那么 StrComp 函数返回 0
  • 如果 String1 > String2, 那么 StrComp 函数返回 1

 

语法

StrComp(string1,string2[,compare])

Vb

参数说明

  • String1 - 必需的参数。第一个字符串表达式。
  • String2 - 必需的参数。第二个字符串表达式。
  • Compare - 一个可选参数。 指定要使用的字符串比较。它可以采用以下值。
    • 0 = vbBinaryCompare - 执行二进制比较(默认)
    • 1 = vbTextCompare - 执行文本比较
Private Sub Constant_demo_Click()
   Dim var1 As Variant
   MsgBox ("Line 1 :" & StrComp("Microsoft", "Microsoft"))
   MsgBox ("Line 2 :" & StrComp("M", "m"))
   MsgBox ("Line 3 :" & StrComp("Microsoft", "MiCrOsOfT"))
   MsgBox ("Line 4 :" & StrComp("Microsoft", "MiCrOsOfT", 1))
   MsgBox ("Line 5 :" & StrComp("Microsoft", "MiCrOsOfT", 0))
End Sub

小写字母大于大写字母

Tips:执行二进制比较,小写=大写字母

15、String函数

String函数使用指定的字符填充指定次数的字符串。

语法

String(number,character)

Vb

参数说明

  • Number - 必需的参数。一个整数值,对于字符参数将重复指定的次数。
  • Character - 必需的参数。字符值,必须重复指定的次数。
Private Sub Constant_demo_Click()
   msgbox("Line 1 :" & String(3,"$"))
   msgbox("Line 2 :" & String(4,"*"))
   msgbox("Line 3 :" & String(5,100))
   msgbox("Line 4 :" & String(6,"ABCDE"))
End Sub

结果如下:

Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA

16、StrReverse()

StrReverse函数反转指定的字符串。

语法

StrReverse(string)
Private Sub Constant_demo_Click()
   msgbox("Line 1 : " & StrReverse("VBSCRIPT"))
   msgbox("Line 2 : " & StrReverse("My First VBScript"))
   msgbox("Line 3 : " & StrReverse("123.45"))
End Sub

结果:

Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值