Vba:如何替换字符串中的字符


您可以使用 VBA 中的Replace()方法来替换字符串中的字符。

该方法使用以下基本语法:

替换(表达式、查找、替换、开始、计数)

金子:

  • expression :要替换其中字符的字符串
  • find :要查找的字符串
  • Replace :用作替换的字符串
  • start(可选 :要搜索的字符串的起始位置
  • count(可选 :要执行的替换次数

以下示例展示了如何在实践中通过 Excel 中的以下字符串列表使用此方法:

示例 1:使用 VBA 替换字符串中所有出现的字符(区分大小写)

假设我们想在每个字符串中将“this”替换为“THAT”。

我们可以创建以下宏来执行此操作:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", " THAT ")
Next i
End Sub

当我们运行这个宏时,我们会收到以下输出:

B 列显示 A 列中的每个字符串,其中每次出现的“this”都替换为“THAT”。

请注意,此替换区分大小写

也就是说,每次出现的“this”都会被替换,但每次出现的“this”都会被保留。

示例 2:使用 VBA 替换字符串中所有出现的字符(不区分大小写)

假设我们想在每个字符串中将“this”(无论大小写)替换为“THAT”。

我们可以创建以下宏来执行此操作:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ")
Next i
End Sub

当我们运行这个宏时,我们会收到以下输出:

B 列显示 A 列中的每个字符串,其中每次出现的“this”都替换为“THAT”。

请注意,此替换不区分大小写

也就是说,每次出现的“this”(无论是否大写)都会被替换。

我们能够执行这种不区分大小写的替换,方法是使用LCase方法首先将 A 列中的每个字符串转换为小写,然后再在每个字符串中搜索“this”。

示例 3:使用 VBA 替换字符串中前 N 个出现的字符

假设我们只想将每个字符串中第一次出现的“this”(无论大小写)替换为“THAT”。

我们可以创建以下宏来执行此操作:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ", Count:=1)
Next i
End Sub

当我们运行这个宏时,我们会收到以下输出:

B 列显示 A 列中的每个字符串,仅将第一次出现的“this”替换为“THAT”。

请注意,我们使用Count:=1仅替换特定字符串的第一次出现,但您可以将 1 替换为您想要替换特定字符串的前n次出现的任何值。

注意:您可以在此处找到 VBA Replace方法的完整文档。

其他资源

以下教程说明如何使用 VBA 执行其他常见任务:

VBA:如何计算字符串中字符的出现次数
VBA:如何检查一个字符串是否包含另一个字符串
VBA:如何计算具有特定文本的单元格

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注