Ten en cuenta que en las ciencias informáticas cualquier problema puede tener diversas resoluciones, así que aquí te enseñaremos lo más óptimo y mejor.
Solución:
El VBA Trim
La función es diferente a la de Excel. Usa Excel Application.WorksheetFunction.Trim
función en su lugar.
Excel Trim eliminará todos los espacios excepto un único espacio entre palabras. VBA Trim eliminará los espacios iniciales y finales.
Gracias a MS por usar la misma palabra clave para diferentes funciones.
Recortar elimina los espacios adicionales al principio y al final, no en medio de un string.
Function CleanSpace(ByVal strIn As String) As String
strIn = Trim(strIn)
' // Replace all double space pairings with single spaces
Do While InStr(strIn, " ")
strIn = Replace(strIn, " ", " ")
Loop
CleanSpace = strIn
End Function
De aquí.
PD. No es la forma más eficiente de eliminar espacios. No lo usaría en muchas cuerdas muy largas o en un bucle apretado. Podría ser adecuado para su situación.
Sé que esta pregunta es antigua, pero la acabo de encontrar y pensé en agregar lo que uso para eliminar varios espacios en VBA…
cleanString = Replace(Replace(Replace(Trim(cleanString), _
" ", " |"), "| ", ""), " |", " ") 'reduce multiple spaces chr(32) to one
Eres capaz de añadir valor a nuestro contenido añadiendo tu veteranía en las aclaraciones.