Sería más fácil para mi si pones tu macro completa, de lo contrario tengo que suponer cómo tienes algunas líneas en la macro.
Preparé lo siguiente, cambia en la macro lo siguiente:
- "resultados.xlsx" por el nombre de tu libro MyResultados
- "Libro2.xlsx" por el nombre de tu libro MyInfo
- "Hoja1" por el nombre de la hoja de tu libro MyResultados
La macro:
Sub CopiarDatos()
Dim hoja As Worksheet, h1 As Worksheet
Dim arr As Variant, i As Long
Dim MyResultados As String, MyInfo As String
'
Application.ScreenUpdating = False
MyResultados = "resultados.xlsx"
MyInfo = "Libro2.xlsx"
'
Set h1 = Workbooks(MyResultados).Sheets("Hoja1")
For Each hoja In Workbooks(MyInfo).Sheets
arr = hoja.Range("C1:F50")
For i = 1 To UBound(arr, 1)
arr(i, 1) = Trim(arr(i, 1))
Next
h1.Range("C" & Rows.Count).End(3)(2).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
Next
Application.ScreenUpdating = True
End Sub
Lo que hace la macro es poner en un arreglo (arr) en memoria el rango de celdas C1:F50, después recorrer el arreglo (en memoria) y quita los espacios a los datos de la columna "C", en el arreglo es la columna 1 (arr(i,1)).
Después pasa el arreglo a la hoja.
Trabajar con arreglos en memoria hace que el proceso sea más rápido.
Prueba y me comentas. Si tienes problemas con el nombre de los libros o las hojas, entonces pon aquí tu macro completa para revisarla.