如何在单元格中每隔 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”已插入到每个文本的三个字符之后。请参见下图。