私は以下のように文字列を持っています。文字の間に「<」というシンボルを挿入するにはどうすればよいですか?Excelの文字列の間にシンボルを挿入します
'ABCDE'
'BCG'
'ABCD'
予想される出力は次のようになります。
A<B<C<D<E
B<C<G
A<B<C<D
私は以下のように文字列を持っています。文字の間に「<」というシンボルを挿入するにはどうすればよいですか?Excelの文字列の間にシンボルを挿入します
'ABCDE'
'BCG'
'ABCD'
予想される出力は次のようになります。
A<B<C<D<E
B<C<G
A<B<C<D
=concatenate(left(A1,1),"<",mid(A1,2,1),"<",mid(A1,3,1),(if(len(A1)>3,"<"&mid(A1,4,1)&if(len(A1)>4,"<"&mid(A1,5,1),""),"")))
は、あなたが5文字までの値のためにやりたい、と3つの文字のように、いくつかのだろう。それ以外の場合は変更することができます。
基本的に、最初の3文字の間に "<"を追加して、文字列が3文字より長いかどうかを確認し、そうであれば "<"文字を追加します。これがより動的である必要がある場合は、vbaではるかに簡単です。
マニュアル、1オフは、無VBAのアプローチは、次のようになります。
=A1&IF(LEN(B1)>0,">"&B1,"")&IF(LEN(C1)>0,">"&C1,"")&IF(LEN(D1)>0,">"&D1,"")&IF(LEN(E1)>0,">"&E1,"")
行にある場合、式は次のようになります値を追加するために、次のように数式を使用して
をセパレータ細胞。あなたがそう、あまりにもエクセルVBAとして質問をタグとして
このような事が...式のため
ではありません。
'''''''
Private Sub sb_Test_fp_AddSym()
Debug.Print fp_AddSym("abncd", "<")
End Sub
Public Function fp_AddSym(pStr$, pSym$) As String
Dim i&, j&, iLB&, iUBs&, iUBt&
Dim tSrc() As Byte, tTgt() As Byte, tSym As Byte
tSrc = pStr
tSym = Asc(pSym)
iLB = LBound(tSrc)
iUBs = UBound(tSrc)
iUBt = iUBs * 2 + 3
ReDim tTgt(iLB To iUBt)
For i = iLB To iUBs Step 2
j = i * 2
tTgt(j) = tSrc(i)
tTgt(j + 1) = tSrc(i + 1)
tTgt(j + 2) = tSym
tTgt(j + 3) = 0
Next
ReDim Preserve tTgt(iLB To (iUBt - 4))
Debug.Print tTgt
Stop
fp_AddSym = tTgt
End Function
'''
これが私の仕事:
Sub SymbolInsert()
Dim cl As Range, temp As String
For Each cl In Range("A1:A3") '~~~> Define your range here
For i = 1 To Len(cl)
temp = temp & Mid(cl, i, 1) & "<"
Next i
cl = IIf(VBA.Right$(temp, 1) = "<", VBA.Left$(temp, Len(temp) - 1), temp)
temp = vbNullString
Next cl
End Sub
それができますおそらくExcelの公式で任意の長さで行うことができますが、ここでは最短のVBAソリューションです
For Each c In Range("A:A").SpecialCells(xlCellTypeConstants)
c.Value2 = Replace(Left$(StrConv(c, vbUnicode), Len(c) * 2 - 1), vbNullChar, "<")
Next
'B1:= REPLACE(A1、COLUMN()* 2-2,0、" <")'(必要に応じてコピーしてください。未使用の列の最初の行に '= INDEX(1:1、、LEN(A1))'を入れてコピーしてください...あなたが望むことを実行できました... –
これは1回限りの操作かどうかは不明ですまたはこれを繰り返し実行する必要がある場合 数式またはVBAソリューションを使用するかどうかは不明です。あなたの質問を編集し、これらの欠けているビットを追加してください。 – teylyn