如何在單元格中每隔 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 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告