Neste artigo, criaremos uma macro para delimitar o texto de uma célula à coluna verticalmente. Podemos delimitar o texto na célula com base no delimitador. O delimitador pode ser uma vírgula, espaço, barra invertida etc.
Para explicar o funcionamento da macro, consideramos o URL como texto de exemplo na célula A10. A macro pode ser executada clicando no botão “Enviar”.
Depois de executar a macro, ela retornará a saída na próxima coluna. O valor do texto na célula é separado em várias sequências secundárias em várias células na segunda coluna.
Explicação lógica
Criamos uma macro “texttocolumns” que realiza duas tarefas. Em primeiro lugar, ele delimita a string em A10 para várias subcadeias, com base no delimitador. Neste exemplo, usamos o traço (-) como delimitador. Em segundo lugar, ele atravessa subcadeias geradas de várias colunas para uma única coluna.
Explicação do código
Destino de Rng.texttocolumns: = Rng.Offset (0, 1), DataType: = xlDelimited, _
TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _
:="-"
O código acima é usado para delimitar a string no intervalo “Rng”. Destino especifica o intervalo de localização onde a saída aparecerá. DataType especifica o tipo de delimitador usado. TextQualifier especifica o caractere que é usado para o qualificador de texto. OtherChar especifica o caractere usado como delimitador.
Siga abaixo para o código
Sub texttocolumns () 'Declarando variáveis Dim StartRow, i, LastCol As Long Dim Rng As Range' desabilitando os alertas de exibição Application.DisplayAlerts = False 'Inicializando a variável StartRow = 10 Set Rng = Range ("A10")' Separando o texto com base no delimitador Rng.texttocolumns Destination: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _: = "-" 'Encontrando a coluna número da célula que contém a última string após delimitar LastCol = Rng.End (xlToRight) .Column 'organizando o texto em colunas em linhas Para i = 2 Para LastCol Cells (10, i) .Cut Cells (StartRow, 2) StartRow = StartRow + 1 Next i End Sub
Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail