如何在单元格中每隔 x 个字符插入特定字符


在Excel中处理文本数据时,您有时可能需要向已存在的单元格添加相同的文本以使其更易于理解。例如,您可能希望在每个单元格的开头插入前缀,在末尾插入特殊符号,或在公式前插入特定文本。您可以使用Excel的“插入”选项卡执行所有这些操作。

每个人都熟悉如何手动完成此任务。在本教程中,您将学习如何使用下面的VBA代码快速地向单元格中添加包含指定数量字符的字符串。

使用VBA代码在特定数量的字符之间插入特定字符

步骤 1

在我们的Excel表格中,我们有一些学号,我们希望在3位数字后添加字符“PHY”。请参见下图。

按Alt和F11键 **(Alt+F11)** 打开Microsoft Visual Basic for Application窗口。请参见下图。

步骤 2

之后,从菜单栏中选择**插入 > 模块**,以调出弹出式模块窗口。请参见下图。

步骤 3

打开**模块窗口**后,在其中键入以下VBA代码。

Sub InsertCharacter()
   Dim Rng As Range
   Dim InputRng As Range, OutRng As Range
   Dim xRow As Integer
   Dim xChar As String
   Dim index As Integer
   Dim arr As Variant
   Dim xValue As String
   Dim outValue As String
   Dim xNum As Integer
   xTitleId = "VBOutput"
   Set InputRng = Application.Selection
   Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
   xRow = Application.InputBox("Number of characters :",
   xTitleId, Type:=1)
   xChar = Application.InputBox("Specify a character :", xTitleId, Type:=2)
   Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
   Set OutRng = OutRng.Range("A1")
   xNum = 1
   For Each Rng In InputRng
      xValue = Rng.Value
      outValue = ""
      For index = 1 To VBA.Len(xValue)
         If index Mod xRow = 0 And index <> VBA.Len(xValue) Then
            outValue = outValue + VBA.Mid(xValue, index, 1) + xChar
         Else
            outValue = outValue + VBA.Mid(xValue, index, 1)
         End If
      Next
      OutRng.Cells(xNum, 1).Value = outValue
      xNum = xNum + 1
   Next
End Sub

请参见下图。

步骤 4

然后,按F5键运行此代码。将弹出一个框,提醒您选择要在其文本字符串中插入特定字符的数据范围,请参见下图。在本例中,我们选择了A2:A9。

根据您的需要输入范围,然后单击“确定”。

步骤 5

将出现另一个弹出框,您必须在其中插入一个数字,该数字指示您希望在多少个字符后插入特殊字符。在本例中,我们输入了3。

请参见下图。

输入数字后单击“确定”。

步骤 6

将出现另一个弹出框,您可以在其中键入要添加到文本的字符。在本例中,我们输入的字符为“PHY”。

请参见下图。

输入字符后单击“确定”。

步骤 7

将弹出另一个框,您必须在其中输入要显示输出结果的单元格。在本例中,我们输入B2作为输出结果单元格。请参见下图。

输入输出单元格编号后单击“确定”。

您可以从下图看到,字符“PHY”已插入到每个文本的三个字符之后。请参见下图。

更新于:2022年9月12日

596 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告