Tengo problemas con una macro que ya estaba terminada

Ya me habías ayudado con este código que era para eliminar los espacios en blanco de una columna que estaba pegando.

Sub LoadInfo()
Dim MyResultados As String  'donde guardo el nombre del libro de resultados
Dim MyInfo As String        'donde guardo el nombre del libro que voy a abrir
Dim InfoPath As String      'donde se guada la información de la ubicacion del libro de info
Dim arr As Variant
Dim i As Long
Set h1 = Sheets("Data")
Set h2 = Sheets("Temp")
Set h3 = Sheets("Base calculo")
If MsgBox("¿Desea actualizar la base de datos?", vbQuestion + vbYesNo, AddIn) = vbNo Then Exit Sub
Application.ScreenUpdating = False          'para que no se vea en pantalla la apertura del libro (tarda menos)
    ClearData       'función para limpiar la información de Data
    MyResultados = ThisWorkbook.Name
    InfoPath = Application.GetOpenFilename    'display para abrir libro de info
        Workbooks.Open Filename:=InfoPath     'abro el libro
    MyInfo = ActiveWorkbook.Name
    Muestra_Hojas
        For Each hoja In ActiveWorkbook.Sheets
            arr = hoja.Range("C1:F50")
            For i = 1 To UBound(arr, 1)
              arr(i, 1) = WorksheetFunction.Trim(arr(i, 1))
            Next
        h1.Range("C" & Rows.Count).End(3)(2).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
        Next
'Desde aqui se aplican la actualización del acumulado
u1 = h2.Range("A" & Rows.Count).End(xlUp).Row
h2.Range("A2" & ":E" & u1).Copy
u2 = h3.Range("A" & Rows.Count).End(xlUp).Row
h3.Range("A" & u2 + 1).PasteSpecial xlValues
h2.Range("F2" & ":AD" & u1).Copy
h3.Range("T" & u2 + 1).PasteSpecial xlValues
h3.Range("F2:S11").Copy
h3.Range("F" & u2 + 1).PasteSpecial xlPasteFormulas
Application.CutCopyMode = False
        Workbooks(MyResultados).Activate
        Worksheets("Acumulado").Activate   'para volver a la hoja de resultados
        Application.DisplayAlerts = False   'para que no salte cuadro de diálogo de clipboard
        Workbooks(MyInfo).Close SaveChanges = False 'cierro el libro de info
Application.ScreenUpdating = True
End Sub
Private Function ClearData()
        Worksheets("Data").Range("C1:F20000").ClearContents
End Function
Private Function Muestra_Hojas()
Dim numero As Byte
numero = Sheets.Count
    For i = 1 To numero
    Sheets(i).Visible = True
    Next
End Function

Todo me funciona perfectamente, sin embargo, cuando estaba cargando una información, luego de cargarla, me di cuenta que uno de los textos estaba mal escrito, entonces fui al archivo que estoy subiendo y lo modifiqué, borre la carga que había hecho para volverlo a subir y ahí me dio este error

Lo único que estoy haciendo es corregir el nombre en una de las celdas de la columna C en varias pestañas, no hago más nada. No entiendo por qué me da error solo con corregir la palabra.

1 Respuesta

Respuesta
2

Ejecuta nuevamente la macro, cuando aparezca el error, presiona el botón Depurar.

Pon el cursor sobre la variable i para ver el número de fila. Con ese número de fila ve a la celda C y número de fila de la hoja que estás cargando.

Tal vez la celda en cuestión tiene un error: #¿NOMBRE?, #N/A, etc.

Muchas gracias Dante, efectivamente cuando cambié el nombre otra celda se modificó quedando en #N/A

Te recomiendo arreglar esos errores en la hoja, pero también puedes omitirlos con la macro, de esta manera:

For i = 1 To UBound(arr, 1)
  If Not IsError(arr(i, 1)) Then
    arr(i, 1) = WorksheetFunction.Trim(arr(i, 1))
  End If
Next

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas