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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top