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:如何计算具有特定文本的单元格