Table of contents
如果你正在寻找方法来 替换一个字符串中的文本 使用Excel VBA 替换某个文本部分可能会节省大量重新输入文本字符串的时间。 因此,让我们进入正文,了解这个替换任务的细节。
下载工作手册
替换字符串中的文本.xlsm用Excel VBA替换字符串中文本的5种方法
在这里,我们有以下数据集,其中包含一些员工的记录和他们的电子邮件ID。 我们的任务是用新的域名替换旧的域名。 在下面的方法中,我们将用这个数据集和一些随机的文本字符串来替换所需的文本。 VBA 代码。
我们已经使用了 微软Excel 365 在这里,你可以根据你的方便使用任何其他版本。
方法-01:从随机字符串的第n个位置开始替换文本
在这里,我们将替换不同起始位置的随机文本字符串中的文本。
步骤-01 :
➤ 转到 开发商 标签>>。 编码 集团>>。 视觉基础 选择。
然后,在 Visual Basic编辑器 将打开。
➤ 转到 插入 标签>>。 模块 选择。
在这之后,一个 模块 将被创建。
步骤-02 :
➤ 编写以下代码
Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(ful_txt_str, "Cars", "Bicycles", 1) MsgBox updated_str End Sub
在这里,我们已经宣布 full_txt_str 和 更新_str 作为 字符串 然后分配给 full_txt_str 到一个随机的文本字符串- "百辆汽车 五十辆汽车 十辆汽车" 那么......。 VBA REPLACE函数 是用来取代 汽车 这个随机字符串的一部分与 自行车 和 1 在这里用于从位置开始替换 1 最后,我们将这个新的文本字符串分配给了 更新_str 并有一个消息框( MsgBox ),我们将看到结果。
➤ 按 F5 .
然后,一个 信息框 将出现新的文本字符串与被替换的文本 自行车 .
➤ 要从第二个实例开始做替换过程。 汽车 使用以下代码。
Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(ful_txt_str, "Cars", "Bicycles", 14) MsgBox updated_str End Sub
在这里,我们将起始位置作为 14 因为我们想让字符串后面的部分在 百辆汽车 并取代 汽车 这里。
➤ 之后 运行 的代码,我们将有以下内容 信息框 与 文字串 从文本出发 五十 并与 自行车 的位置上 汽车 .
➤ 为了只拥有这个字符串的最后一部分,我们正在应用以下代码。
Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(ful_txt_str, "Cars", "Bicycles", 25) MsgBox updated_str End Sub
在这里,我们将起始位置作为 25 因为我们想让字符串后面的部分在 五十辆汽车 并取代 汽车 与 自行车 这里。
最后,我们将有一个 信息框 我们所需要的字符串的一部分被替换为 自行车 .
阅读更多:Excel VBA:按位置替换字符串中的字符(4种有效方法)
方法-02:用Excel VBA为随机字符串的第n次出现的文本进行替换
在本节中,我们将在一个随机字符串中替换一个出现次数不同的文本,借助一个 VBA 代码。
阶梯 :
➤ 跟随 步骤-01 的 方法一 .
➤ 键入以下代码。
Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(ful_txt_str, "Cars", "Bicycles", 1, 1) MsgBox updated_str End Sub
在这里,我们已经宣布 full_txt_str 和 更新_str 作为 字符串 然后分配给 full_txt_str 到一个随机的文本字符串- "百辆汽车 五十辆汽车 十辆汽车" 在这之后, REPLACE函数 是用来取代 汽车 这个随机字符串的一部分与 自行车 , 1 在这里用于从位置开始替换 1 这个字符串的,以及最后的 1 是用于计算出现的次数。 通过使用 1 作为计数的数字,我们定义的是替换第一种 汽车 最后,我们将这个新的文本字符串分配给了 更新_str 并有一个消息框( MsgBox ),我们将看到结果。
➤ 按 F5 .
之后,一个 信息框 将出现新的文本 自行车 在 第一位置 的 汽车 只有。
➤ 用于替换前两个实例的 汽车 与 自行车 使用以下代码。
Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(ful_txt_str, "Cars", "Bicycles", 1, 2) MsgBox updated_str End Sub
在这里。 2 被用作计数数字,以取代前两个实例的 汽车 与 自行车 .
运行该代码后,你将得到前两个文本的替换 汽车 与 自行车 .
➤ 应用以下代码来替换所有的文本实例 汽车 .
Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(ful_txt_str, "Cars", "Bicycles", 1, 3) MsgBox updated_str End Sub
这里,"A "的最后一个参数是 REPLACE函数 是 3 这是个计数数字,表示替换了所有的 汽车 与 自行车 在文本字符串中。
➤ 按 F5 .
之后,我们将有以下内容 信息框 替换后的文本 自行车 在字符串中。
类似读物
- 如何在Excel中用回车键替换文本(4种流畅的方法)
- Excel VBA:如何在Word文档中查找和替换文本
- 如何替换Excel中特定字符后的文本(3种方法)
- 在Excel中根据条件替换单元格的文本(5种简单方法)
方法-03:用InputBox替换随机字符串中的文本
在这里,我们将用用户定义的文本替换随机字符串中的某个文本,该文本将由用户借助于 VBA的InputBox函数 .
阶梯 :
➤ 跟随 步骤-01 的 方法一 .
➤ 键入以下代码。
Sub substitution_of_text_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" new_txt = InputBox("Write down new text to replace") updated_str = Replace(ful_txt_str, "Cars", new_txt) MsgBox updated_str End Sub
在这里,我们已经宣布 full_txt_str , new_txt ,以及 更新_str 作为 字符串 然后分配给 full_txt_str 到一个随机的文本字符串- "百辆汽车 五十辆汽车 十辆汽车" 要将用户定义的输入作为文本替换成 汽车 在随机字符串中,我们使用了 输入框功能 然后把这个值分配给 new_txt 那么......。 REPLACE函数 是用来取代 汽车 这个随机字符串的一部分与 new_txt 最后,我们将这个新的文本字符串分配给了 更新_str 并有一个消息框( MsgBox ),我们将看到结果。
➤ 按 F5 .
在这之后,一个 输入框 将会出现,你可以在这里输入任何你想在新字符串中出现的文本部分。
➤ 类型 自行车 或任何其他你想要的文本,然后按 认可 .
最后,你将得到以下结果,新的文本字符串具有新的文本 自行车 的位置上 汽车 .
阅读更多:如何替换Excel公式中的文本(7种简单方法)。
方法四:用Excel VBA替换字符串范围内的文本
在这里,我们将用 Gmail 中的域名组成的电子邮件ID的一部分。 新领域 列,而为了积累新的电子邮件ID,我们插入了一个新的列。 最后的电子邮件地址 .
阶梯 :
➤ 跟随 步骤-01 的 方法一 .
➤ 键入以下代码。
Sub substitution_of_text_4() For i = 4 To 13 If InStr(1, Cells(i, 4).Value, "gmail")> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, "gmail", Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub
在这里,我们使用了 FOR循环 来执行该操作,从 第4行 至 第13行 借助于 如果-THEN 语句,我们已经检查了是否有以下的电子邮件ID D栏 含有 "gmail" 或没有,而为了满足这一标准 "gmail" 的部分将被替换成新的域名。 E栏 中创建新的id。 F栏 否则,你将会在 "A "的相应单元格中出现空白。 F栏 .
➤ 按 F5 .
然后,你将会有新的电子邮件ID在 最后的电子邮件地址 列。
阅读更多:Excel VBA查找和替换一列中的文本(2例)。
方法-05:用用户输入的文本替换字符串范围内的文本以寻找文本
你可以用新的域名替换下面的电子邮件ID,并声明在以前的ID中替换什么,一个用户的输入可以按照这个方法来使用。
阶梯 :
➤ 跟随 步骤-01 的 方法一 .
➤ 键入以下代码。
Sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("输入要替换的字符串") For i = 4 To 13 If InStr(1, Cells(i, 4).Value, LCase(partial_text))> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4) .Value, LCase(partial_text), Cells(i, 5) .Value) Else Cells(i, 6) .Value = "" End If Next i End Sub
在这里,我们已经定义了 部分文字 作为一个 字符串 然后将其分配给一个字符串,该字符串将由用户通过 输入框 .
之后,我们用 FOR循环 来执行该操作,从 第4行 至 第13行 ,并使用 如果-THEN 语句,我们检查了是否有电子邮件的ID D栏 含有 "gmail" 为了达到这一标准 "gmail" 的部分将被替换成新的域名。 E栏 中创建新的id。 F栏 否则,你将会在 "A "的相应单元格中出现空白。 F栏 .
➤ 按 F5 .
此后,你将有一个 输入框 在这里你必须输入你想在电子邮件ID范围内搜索的文本(这里我们输入了 Gmail ),然后按 认可 .
最后,我们将我们更新的电子邮件ID放在了 最后的电子邮件地址 列。
阅读更多:用Excel VBA(宏和用户表格)查找和替换一个范围内的文本
练习部分
为了方便自己的练习,我们提供了一个 实践 的工作表中,像下面这样,在一个名为 实践 .请你自己去做。
总结
在这篇文章中,我们试图介绍用Excel替换字符串中的文本的方法。 VBA 如果你有任何建议或问题,请随时在评论区分享。