浅析Mid函数实现字符串的替代

VBA/EXCEL 专栏收录该内容
8 篇文章 0 订阅

浅析Mid函数实现字符串的替代

Mid函数一般用于返回原字符串中子串,比如说

Dim MyString, FirstWord, LastWord, MidWords

MyString = "Mid Function Demo"    建立一个字符串。

FirstWord = Mid(MyString, 1, 3)    ' 返回 "Mid"

LastWord = Mid(MyString, 14, 4)    ' 返回 "Demo"

MidWords = Mid(MyString, 5)    ' 返回 "Funcion

 

具体函数说明如下:

返回 Variant (String),其中包含字符串中指定数量的字符。

语法

Mid(string, start[, length])

Mid 函数的语法具有下面的命名参数

部分

说明

string

必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null

start

必要参数。为 Longstring 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")

length

可选参数;为 Variant (Long)。要返回的字符数如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。

 

说明

欲知 string 的字符数,可用 Len 函数。

注意 MidB 函数作用于字符串中包含的字节数据,如同在双字节字符集(DBCS)语言中一样。因此其参数指定的是字节数,而不是字符数。对于使用 MidB的示例代码,请参阅示例主题中的第二个示例。

那么我们是否可以利用它来进行一些字符串替换呢?请在你机器上运行下面函数:

Option Explicit

 

Public Function Test() As String

    Dim s As String

   

    s = "ABCD"

    Mid(s, 1, 1) = "T"

    Test = s

End Function

你发现什么了?WOW,输出字符串变成“TBCD”了! 是的,我们可以利用Mid来实现字符串的替换(非常令人高兴的事情)!那么如果我把“T”变成“TX”呢?请看下面代码:

Option Explicit

 

Public Function Test() As String

    Dim s As String

   

    s = "ABCD"

    Mid(s, 1, 1) = "TX"

    Test = s

End Function

再运行一次,不出所料,它还是“TBCD“。虽然Mid能够做一些简单的字符串的替换,但是它的前提条件是字符串不能够超过它的返回长度(例子中的是1)。那么可能有些网友会问,如果小于它的返回长度会发生什么呢?嗯,好的想法,还是让实验结果来说明它吧,请看:

Option Explicit

 

Public Function Test() As String

    Dim s As String

   

    s = "ABCD"

    Mid(s, 1, 3) = "TX"

    Test = s

End Function

运行后它的结果如下:”TXCD”

从上面的结果来看,Mid能够做一些简单的字符串替换,但是必须遵循以下条件:

替换的最大长度由Mid返回的最大长度决定。如果替换串的长度大于它的返回长度,那么只有替换串的前面一部分用于替换。如果替换串的长度小于它的返回长度,那么原字符串中超过部分将被保留,而其它部分被替换。虽然Mid在某些场合有很巧的功能,但是如果涉及到常用字符串操作,个人建议还是尽量用Replace(expression, find, replace[, start[, count[, compare]]])来完成。

 

  • 0
    点赞
  • 29
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值