Usuário com melhor resposta
TRIM() ou ARRUMAR() tem algum BUG ?

Pergunta
-
Pesquisei bastante e não encontrei relatos sobre algum "bug" no funcionamento da função TRIM() ou ARRUMAR() na utilização com o MS Excel ou VBA.
Supondo o texto " teste teste teste " em uma planilha, célula A1 por exemplo e em A2 a fórmula =ARRUMAR(A1)
o resultado é justamente o esperado: "teste teste teste"
Caso eu venha a gerar uma macro a partir da fórmula em A2, teríamos:
Range("A2").Select
ActiveCell.FormulaR1C1 = "=TRIM(R[-1]C)"
E o mesmo resultado (ok)! De outra forma agora... transferindo para uma variável:
Range("A2").Select
teste = Trim(Cells(1, 1).Value)
ActiveCell.FormulaR1C1 = teste
É quase o mesmo resultado, mas não é: "teste teste teste"
Funciona o "LTRIM" e o "RTRIM", mas não a parte dos espaços excedentes entre as palavras...
Como proceder?
Pois estou no meio de uma programação utilizando o TRIM e desejo eliminar os espaços excedentes entre as palavras:(
Respostas
-
Eu já tinha visto isso antes, em alguns casos a função nativa Trim não funcionava, então passei a utilizar assim:
Dim texto As String texto = " teste teste teste " Debug.Print "Usando Trim: " & Trim(texto) Debug.Print "Usando $Trim: " & Trim$(texto) Debug.Print "Usando A.W.Trim: " & Application.WorksheetFunction.Trim(texto)
Resultado:
Abraço!
Natan
- Editado 'Natan Silva quarta-feira, 13 de março de 2019 19:53
- Marcado como Resposta MLRamos quarta-feira, 13 de março de 2019 20:08
Todas as Respostas
-
Eu já tinha visto isso antes, em alguns casos a função nativa Trim não funcionava, então passei a utilizar assim:
Dim texto As String texto = " teste teste teste " Debug.Print "Usando Trim: " & Trim(texto) Debug.Print "Usando $Trim: " & Trim$(texto) Debug.Print "Usando A.W.Trim: " & Application.WorksheetFunction.Trim(texto)
Resultado:
Abraço!
Natan
- Editado 'Natan Silva quarta-feira, 13 de março de 2019 19:53
- Marcado como Resposta MLRamos quarta-feira, 13 de março de 2019 20:08
-
Eu já tinha visto isso antes, em alguns casos a função nativa Trim não funcionava, então passei a utilizar assim:
Dim texto As String texto = " teste teste teste " Debug.Print "Usando Trim: " & Trim(texto) Debug.Print "Usando $Trim: " & Trim$(texto) Debug.Print "Usando A.W.Trim: " & Application.WorksheetFunction.Trim(texto)
Resultado:
Abraço!
Natan
Show !!!
-
Boa noite a todos.
Apenas para esclarecer: não se trata de um bug, a função "Trim" do VBA é diferente da função "Trim" da planilha. A função do VBA retira os "espaços à esquerda e precedentes", mas não os interiores entre palavras. Já a função da planilha (idem "Application.WorksheetFunction.Trim") "Remove todos os espaços do texto exceto os espaços únicos entre palavras".
Os textos foram retirados da própria ajuda do VBA e do Excel.
Abraço.
Filipe Magno