A análise de uma coluna de cadeias usando VBA
Pergunta
Eu gostaria de analisar uma coluna de células de cordas em Excel VBA, cada célula contém o seguinte:
2 '␂'
Eu gostaria de alterar o conteúdo desta célula para conter somente 2 (ou quaisquer caracteres numéricos pouco antes da 'string'. Qual seria o método mais fácil de analisar tais informações? Obrigado.
Solução
Se você tem certeza sobre o formato, encontrar a corda antes da '(apóstrofo) e alterar o valor da célula. Supondo que você está sobre a célula que tem esse valor, use o seguinte código VBA.
activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)
Ele procura por um apóstrofo e extrai os caracteres antes dele e coloca-lo em célula atual.
Outras dicas
Assumindo que os dados numéricos é sempre no início da célula, você pode usar Regex para encontrar todos os números consecutivos no início da string, parando uma vez que atinge os primeiros caracteres não numéricos. Aqui é uma função que vai fazer isso por você, eu espero que ajude. A ^ representa o início da célula, e (\ d +) significa um ou mais caracteres numéricos e a. * Meios seguido de zero ou mais caracteres. Eu estou assumindo que não é apenas uma série de números que você precisa, então eu tenho a regex apenas retornar submatch 0 (primeiro jogo).
Function ExtractNumericData(ByVal text As String) As String
Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True
End Function