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

相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/

