Vba: como dividir uma string com base em vários delimitadores
Você pode usar a seguinte sintaxe básica para dividir uma string com base em vários delimitadores no VBA:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
Este exemplo específico divide cada string no intervalo A2:A7 com base em hífens ou espaços em cada string e, em seguida, atribui os elementos resultantes de cada string a células adjacentes nas colunas B, C e D.
Nota : Esta macro primeiro substitui cada hífen por um espaço e, em seguida, divide cada string com base na localização dos espaços.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: dividir uma string com base em vários delimitadores em VBA
Suponha que temos a seguinte lista de nomes no Excel:
Suponha que queiramos dividir cada nome com base em hífens ou espaços e, em seguida, atribuir os elementos resultantes de cada string a novas células.
Podemos criar a seguinte macro para fazer isso:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que esta macro divide cada string na coluna A com base em espaços e hifens e exibe os elementos de texto individuais de cada string nas colunas B, C e D.
Nota nº 1: estamos dividindo strings com base em hífens e espaços neste exemplo, mas você pode dividir strings com base em quaisquer delimitadores desejados, especificando-os nas funções Substituir e Dividir .
Nota nº 2 : você pode encontrar a documentação completa da função VBA Split aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns usando VBA:
VBA: Como contar ocorrências de caracteres em uma string
VBA: como verificar se uma string contém outra string
VBA: Como contar células com texto específico