簡體   English   中英

Excel / VBA - 如何每N個字符在字符串中插入一個字符

[英]Excel/VBA - How to insert a character in a string every N characters

我有一個報告,它在導出時會在一個單元格中顯示一個單個字符串的訂單號(總是7位長)。 例如:訂單1234567和9876543將在單個單元格中顯示為12345679876543。 每個單元格沒有最大訂單數,每個單元格都有所不同。

有沒有什么方法可以每7位數添加一個字符,以便我可以在之后為列做文本?

為了避免使用冗長而復雜的公式,我建議使用VBA。

將下面的代碼粘貼到標准模塊中,然后您可以在工作表上使用這樣的公式:

=InsertPipe(A1,7)

Function InsertPipe(s As String, interval As Long)
    If interval < 1 Then Exit Function        

    Dim i As Long, result As String

    For i = 1 To Len(s) Step interval
        On Error Resume Next
        result = result & Left(s, interval) & "|"
        s = Mid(s, interval + 1, Len(s) - interval)
    Next i

    InsertPipe = Left(result, Len(result) - 1)
End Function

你可以使用CONCATENATE

如果值在兩個單元格中,則為Ex: =CONCATENATE(A1,",",B1)

Ex如果值在一個單元格中=IF(LEN(A1)>7,CONCATENATE(LEFT(A1,7),",",MID(A1,8,100)))

編輯添加

您可以使用的VBA代碼(剛才發現)

 Sub AddACharacter()

Dim Rng As Range
Dim InputRng As Range, OutRng As Range
Dim Row As Integer
Dim Char As String
Dim Index As Integer
Dim arr As Variant
Dim Val As String
Dim OutVal As String
Dim Num As Integer
xTitleId = "Add a character"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address,Type:=8)
Row = Application.InputBox("Number of characters :", xTitleId, Type:=1)
Char = 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")
Num = 1
For Each Rng In InputRng
Val = Rng.Value
OutVal = ""
For Index = 1 To VBA.Len(Val)
    If Index Mod Row = 0 And Index <> VBA.Len(Val) Then
        OutVal = OutVal + VBA.Mid(Val, Index, 1) + Char
    Else
        OutVal = OutVal + VBA.Mid(Val, Index, 1)
    End If
Next
OutRng.Cells(Num, 1).Value = OutVal
Num = Num + 1
Next
End Sub

你可以使用一個被復制的公式,但是在預期的分割方面是有限的,你可以在這些行中使用某些東西,在我的例子中是b1到z1。

=MID($A1,IF(COLUMN()-2=0,1,((COLUMN()-2)*7)+1),7)

在此輸入圖像描述

假設字符串在A2中,那么嘗試這個......在B2中

=SUBSTITUTE(A2,LEFT(A2,7),LEFT(A2,7)&"|")

上面的公式將插入一個“|” 七個字后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM