Excel VBA:如何替换字符串中的文本(5种有效方法)

  • Share This
Hugh West

如果你正在寻找方法来 替换一个字符串中的文本 使用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 如果你有任何建议或问题,请随时在评论区分享。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.