Vba:如何从字符串中删除字符


您可以使用 VBA 中的Replace()方法从字符串中删除字符。

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

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

假设我们要从每个字符串中删除“this”。

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

 Sub RemoveChar()
Dim i As Integer

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

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

B 列显示 A 列中的每个字符串,并删除每个出现的“this”。

请注意,该宏区分大小写

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

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

假设我们要从每个字符串中删除“this”(无论大小写)。

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

 SubRemoveChar ()
Dim i As Integer

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

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

B 列显示 A 列中的每个字符串,并删除每个出现的“this”。

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

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

我们能够通过使用LCase方法首先将 A 列中的每个字符串转换为小写,然后在每个字符串中搜索“this”来实现此目的。

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

假设我们只想从每个字符串中删除第一次出现的“this”(无论大小写)。

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

 SubRemoveChar ()
Dim i As Integer

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

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

B 列显示 A 列中的每个字符串,仅删除第一次出现的“this”。

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

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

其他资源

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

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

添加评论

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