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