エクスポートすると、単一のセルに1つの文字列として注文番号(常に7桁)が表示されます。例:1234567と9876543の注文は、1つのセルに12345679876543として表示されます。セルあたりの注文の最大数はなく、セルごとに異なります。Excel/VBA - 文字をN文字ごとに文字列に挿入する方法
文字を7桁ごとに追加できるので、その後にテキストを列に追加できますか?
エクスポートすると、単一のセルに1つの文字列として注文番号(常に7桁)が表示されます。例:1234567と9876543の注文は、1つのセルに12345679876543として表示されます。セルあたりの注文の最大数はなく、セルごとに異なります。Excel/VBA - 文字をN文字ごとに文字列に挿入する方法
文字を7桁ごとに追加できるので、その後にテキストを列に追加できますか?
長くて複雑な式を使用しないようにするには、VBAを使用することをおすすめします。
標準モジュールに以下のコードを貼り付け、その後、ワークシート上で、このように式を使用することができます。
=InsertPipe(A1)
Function InsertPipe(s As String)
Dim i As Long
Dim result As String
For i = 1 To Len(s) Step 7
On Error Resume Next
result = result & Left(s, 7) & "|"
s = Mid(s, 8, Len(s) - 7)
Next i
InsertPipe = Left(result, Len(result) - 1)
End Function
CONCATENATE
を使用できます。
例の値は、二つのセルにある場合:=CONCATENATE(A1,",",B1)
例の値は、一つのセル内にある場合=IF(LEN(A1)>7,CONCATENATE(LEFT(A1,7),",",MID(A1,8,100)))
EDITは(しばらく前に見つかった)あなたが使用することができ
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
これは素晴らしい、多くのおかげで、それは素晴らしい仕事をした! – Jonorl