VBA Split String into Array - Como dividir string em matriz no Excel VBA?

Excel VBA dividir string em matriz

Uma string é uma coleção de caracteres unidos, quando esses caracteres são divididos e armazenados em uma variável, então essa variável se torna uma matriz para esses caracteres e o método que usamos para dividir uma string para transformá-la em uma matriz é usando a função SPLIT em vba que divide a corda em uma corda unidimensional.

Como planilhas em VBA também, temos funções para lidar com valores de String ou Texto. Estamos muito familiarizados com as operações de string, como extrair o primeiro nome, sobrenome, nome do meio, etc. Mas que tal a ideia de dividir o valor da string em matrizes no VBA? Sim, você ouviu corretamente, podemos dividir a frase da string em array usando a codificação VBA e, neste artigo especial, mostraremos como dividir a string em uma matriz no Excel VBA.

O que é Split String into an Array?

Deixe-me esclarecer isso primeiro, "String into Array" nada mais é que "diferentes partes da frase ou string serão divididas em várias partes". Por exemplo, se a frase for “Bangalore é a capital de Karnataka”, cada palavra será uma matriz diferente.

Portanto, como dividir essa frase em uma matriz é o tópico deste artigo.

Como converter string dividida em matriz no Excel VBA?

Para converter a string dividida em uma matriz em VBA, temos uma função chamada “SPLIT”. Esta é uma função VBA que executa a tarefa de dividir o valor da string fornecida em partes diferentes com base no delimitador fornecido.

Por exemplo, se a frase for “Bangalore é a capital de Karnataka”, o espaço é o delimitador entre cada palavra.

Abaixo está a sintaxe da função SPLIT.

  • Valor ou Expressão: Este é o valor da string ou texto que estamos tentando converter para a matriz, segregando cada parte da string.
  • (Delimitador): Isso nada mais é do que as coisas comuns que separam cada palavra na string. Em nossa frase “Bangalore é a capital de Karnataka”, cada palavra separada por um caractere de espaço, portanto, nosso delimitador é o espaço aqui.
  • (Limite): Limite nada mais é do que quantas peças queremos como resultado. Por exemplo, na frase "Bangalore é a capital de Karnataka", temos sete partes, se precisarmos de apenas três partes, obteremos a primeira parte como "Bangalore", a segunda parte como "é" e a terceira parte como o resto a frase, ou seja, "a capital de Karnataka".
  • (Compare): Isso não é usado 99% do tempo, portanto, não vamos tocar nisso neste momento.

Exemplo 1

Ok, agora vamos ver exemplos práticos.

Etapa 1: Defina a variável VBA para conter o valor da string.

Código:

Sub String_To_Array () Dim StringValue As String End Sub

Etapa 2: para esta variável, atribua a string "Bangalore é a capital de Karnataka".

Código:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore é a capital de Karnatka" End Sub

Etapa 3: a seguir, defina mais uma variável que pode conter cada parte do valor da string acima. Sobre isso, precisamos ter em mente que, uma vez que a frase tem mais de uma palavra, precisamos definir a variável como “Array” para conter mais de um valor.

Neste caso, temos 7 palavras na string, portanto, defina o array como segue.

Código:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore é a capital de Karnatka" Dim SingleValue () As String End Sub

Agora, para esta variável de array, usaremos a função SPLIT para dividir a string em um array no Excel VBA.

Código:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore é a capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

A expressão é o nosso valor de string, ou seja, a variável já contém o valor de string, portanto, insira apenas o nome da variável.

O delimitador nesta string é um caractere de espaço, então forneça o mesmo.

Código:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore é a capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

A partir de agora, deixe outras partes da função SPLIT.

A função SPLIT divide o valor da string em 7 partes, cada palavra segregada em detrimento do caractere de espaço. Visto que declaramos a variável “SingleValue” como array, podemos atribuir todos os 7 valores a essa variável.

Podemos escrever o código da seguinte maneira.

Código:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore é a capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub

Execute o código e veja o que temos na caixa de mensagem.

A partir de agora, podemos ver a primeira palavra, ou seja, “Bangalore”, para mostrar outras palavras, podemos escrever o código como segue.

Código:

Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore é a capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub

Agora execute o código e veja o que temos na caixa de mensagem.

Cada palavra foi dividida em matrizes.

Exemplo # 2

Agora imagine uma situação de armazenamento desses valores em células, ou seja, cada palavra em uma célula separada. Para isso, precisamos incluir o loop FOR NEXT no VBA.

O código abaixo irá inserir cada palavra em células separadas.

Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore é a capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer Para k = 1 a 7 células (1, k) .Value = SingleValue (k - 1) Próximo k End Sub

Isso irá inserir cada palavra, conforme mostrado na imagem abaixo.

Coisas para lembrar

  • Array e loops são usados ​​juntos para tornar o código dinâmico.
  • A função SPLIT requer um delimitador comum, que separa cada palavra da frase.
  • O comprimento da matriz começa em zero, não em 1.

Artigos interessantes...