いくつかの数字を別の数字に拡張する必要があります
入力が399207で10 =出力の場合のように399207399208 399209 399210
入力:
422209 10
904L1009 10
356608 11
0003ML00030-1 3
00EO0632 33
00SH0062 65
0177-5002 3
01RLCB0082901001 3
02AE0078 81
02ID0081 82
0301ME001218-1 3
07HY0569 71
327798 800
336999 7000
現在、このプロセスにはユーザー定義のサブ関数を使用しています
これは私のコードです
Function EXPAND_serial(pno As String, n As String, _
Optional delim As String = "@")
Dim m As String, i As Long, pnos As Variant
m = Right(pno, Len(n))
pno = Left(pno, Len(pno) - Len(n))
ReDim pnos((m) To (n))
For i = (m) To (n)
pnos(i) = pno & (i)
Next i
EXPAND_serial = Join(pnos, delim)
End Function
このコードを使用すると、メジャー番号では正常に機能しますが(01から09)、09から10以上を超えると
0をスキップしますしたがって、0が来ると、入力桁が各出力桁の長さと一致しません
理解を深めるために私のスナップを参照してください。これを修正する方法は私を助けます
明るい赤の背景のハイライトに問題があります
非常に単純なようです。間違っている場合は、関数String(Number, Character)
を使用して修正してください。この関数についてもっと理解できます ここ 。
Function EXPAND_serial(pno As String, n As String, _
Optional delim As String = "@")
Dim m As String, i As Long, pnos As String
m = Right(pno, Len(n))
pno = Left(pno, Len(pno) - Len(n))
ReDim pnos(m To n)
For i = m To n
pnos(i) = pno & String(Len(n) - Len(CStr(i)), "0") & i
Next i
EXPAND_serial = Join(pnos, delim)
End Function
追伸:コードを読みやすくするために、余分な括弧を削除しました。