Preciso expandir alguns números de um para outro
Como quando a entrada é 399207 e 10 = Saída 399207 399208 399209 399210
Entrada:
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
Atualmente eu uso a subfunção definida pelo usuário para este processo
Este é o meu código
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
Quando eu uso este código, ele funciona bem (01 a 09) para números maiores, mas se cruzar 09 a 10 ou mais
Ele pula 0's Portanto, o dígito de entrada não corresponde ao comprimento de cada dígito de saída se 0's vier
Veja meu Snap para melhor entendimento. como resolver isso me ajude
Os destaques de fundo vermelho claro têm problema
Parece muito simples, corrija se eu estiver errado, usando a função
String(Number, Character)
que você pode fazer. Você pode entender mais sobre esta função aqui .PS: removi parênteses extras para tornar o código mais legível.