Função Split

Retorna uma matriz unidimensional de base zero que contém um número especificado de subcadeias de caracteres.

Sintaxe

Split(expressão, [ delimitador, [ limite, [ comparação ]]])

A sintaxe da função Split tem estes argumentos nomeados:

Parte Descrição
expressão Obrigatório. Expressão de cadeia de caracteres contendo subcadeias de caracteres e delimitadores. Se expressão for uma subcadeia de caracteres de comprimento zero (""), Split retornará uma matriz vazia, ou seja, uma matriz sem elementos e sem dados.
delimitador Opcional. Caractere de cadeia de caracteres usado para identificar os limites de subcadeia de caracteres. Caso seja omitido, o caractere de espaço ("") será considerado o delimitador. Se delimitador for uma cadeia de caracteres de comprimento zero, uma matriz de elemento único com toda a cadeia de caracteres expresssão será retornada.
limite Opcional. Número de subcadeias de caracteres a ser retornado; -1 indica que todas as subcadeias de caracteres são retornadas.
comparação Opcional. Valor numérico indicando o tipo de comparação a ser usada ao avaliar subcadeias de caracteres. Confira a seção Configurações para obter os valores.

Configurações

O argumento compare pode ter os seguintes valores:

Constant Valor Descrição
vbUseCompareOption -1 Executa uma comparação usando a configuração da instrução da Option Compare.
vbBinaryCompare 0 Executa uma comparação binária.
vbTextCompare 1 Executa uma comparação textual.
vbDatabaseCompare 2 Somente Microsoft Access. Executa uma comparação baseada nas informações do seu banco de dados.

Exemplo

Este exemplo mostra como usar a função Split .

Dim strFull As String
Dim arrSplitStrings1() As String
Dim arrSplitStrings2() As String
Dim strSingleString1 As String
Dim strSingleString2 As String
Dim strSingleString3 As String
Dim i As Long

strFull = "Dow - Fonseca - Graham - Kopke - Noval - Offley - Sandeman - Taylor - Warre"    ' String that will be used. 

arrSplitStrings1 = Split(strFull, "-")      ' arrSplitStrings1 will be an array from 0 To 8. 
                                            ' arrSplitStrings1(0) = "Dow " and arrSplitStrings1(1) = " Fonesca ". 
                                            ' The delimiter did not include spaces, so the spaces in strFull will be included in the returned array values. 

arrSplitStrings2 = Split(strFull, " - ")    ' arrSplitStrings2 will be an array from 0 To 8. 
                                            ' arrSplitStrings2(0) = "Dow" and arrSplitStrings2(1) = "Fonesca". 
                                            ' The delimiter includes the spaces, so the spaces will not be included in the returned array values. 

'Multiple examples of how to return the value "Kopke" (array position 3). 

strSingleString1 = arrSplitStrings2(3)      ' strSingleString1 = "Kopke". 

strSingleString2 = Split(strFull, " - ")(3) ' strSingleString2 = "Kopke".
                                            ' This syntax can be used if the entire array is not needed, and the position in the returned array for the desired value is known. 

For i = LBound(arrSplitStrings2, 1) To UBound(arrSplitStrings2, 1)
    If InStr(1, arrSplitStrings2(i), "Kopke", vbTextCompare) > 0 Then
        strSingleString3 = arrSplitStrings2(i)
        Exit For
    End If 
Next i

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.