É um pouco mais complicado, não tem um texto específico para procurar dentro da array e varia de caso a caso porém, todas utlizam esta função que separa strings baseadas num critério e coloca o resultado num array (atualmente os arrays são variáveis globais).
Tem uma macro que analisa um relatório que no formato original (em PDF) possui um cabeçalho e que dependendo da condição os valores que se deseja buscar estão após o 3º, 5º e 6º espaço e em outras condições os mesmos valores estão após o 2º, 5º e 7º espaços.
Em outra macro ela analisa linhas descritivas de peças em software de CAD, e obtem as informações por critérios de espaços (neste caso o VBA não roda num Excel mas sim dentro do próprio softaware de CAD)
Outras vezes, o critério de separação é um ponto e virgula como por exemplo a comparação de dados com arquivos .csv
E são centenas de arquivos legados e todas utilizam esta função ou similares a esta
Function lsepara1(str, str2 As String)
For i = 0 To 100
lsep(i) = ""
Next
sa = str
na = 0
i = InStr(sa, str2)
isep = 0
While i > 0
s1 = Mid(sa, 1, i - 1)
lsep(na) = s1
na = na + 1
sa = Mid(sa, i + 1, 1000)
i = InStr(sa, str2)
isep = isep + 1
Wend
lsep(na) = sa
lsepara1 = isep
End Function
Quero apenas uma alternativa para substituir esta função e que não utilize variáveis globais como ela.
Postado : 25/04/2017 9:17 pm