Macro para pegar información de un libro a otro

Esta pregunta la hice hace poco pero buscando y buscando vi que respondes bien a este tipo de preguntas (espero que me puedas ayudar). Yo conseguí el siguiente código, pero no hace lo que necesito:
Sub Guardar()
  Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Hoja1").Copy _
  before:=Workbooks("Libro1").Worksheets(3)
  With ActiveSheet
    .UsedRange.EntireColumn.Copy
    .[a1].PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False
  End With
  Application.CutCopyMode = False
End Sub
Yo quiero pegar la información de la HOJA1 de LIBRO2 en la hoja 3 de LIBRO1 (OJO no sobreescribir, pegar en la HOJA3 a partir de la primera fila en blanco que encuentre). Con este código lo que logro es copiar la HOJA1 y pegarla en el LIBRO1 sin escribir la información en la hoja 3. Necesito saber cómo puedo pegar esa información directamente en la HOJA3.

1 respuesta

Respuesta
1
Sub Guardar()
  Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Hoja1").Copy
WorkBooks("Libro 1").Active
Sheets("Hoja3").Select
  With ActiveSheet
    .UsedRange.EntireColumn.Copy
    .[a1].PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False
  End With
  Application.CutCopyMode = False
End Sub
Probemos de esta forma.
Hola, acabo de correr el código pero me salió un 'error 9' subíndice fuera del intervalo en la línea donde dice Workbooks("Libro 1"). Active Tengo otra duda y es que cuando corre el código se abre nuevamente el libro donde lo estoy ejecutando (LIBRO2) y bueno, como no he podido ver cómo termina el código no se si se cierra después. Aquí te coloco de nuevo el código. Muchas gracias!
Sub Guardar()
  Application.ScreenUpdating = False
  ThisWorkbook.Worksheets("Hoja1").Copy
Workbooks("Libro 1").Active
Sheets("Historial de mediciones").Select
  With ActiveSheet
    .UsedRange.EntireColumn.Copy
    .[a1].PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False
  End With
  Application.CutCopyMode = False
End Sub
Hola de nuevo, he buscado y buscado para ver como arreglaba el error (porque es más o menos urgente esto) y al fin logre quitarlo, quedo así:
Sub Guardar()
       Application.ScreenUpdating = False
       ThisWorkbook.Worksheets("Hoja1").Copy
       Application.Workbooks.Open ("C:\Documents and Settings\sserrano\Escritorio\SSerrano\excel\Libro1.xls")
       Sheets("Historial de mediciones").Select
  With ActiveSheet
    .UsedRange.EntireColumn.Copy
    .[a1].PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False
  End With
  Application.CutCopyMode = False
End Sub
Pero ahora que logre ver como corría todo, note que al final no se pega nada en el LIBRO1, queda seleccionada la tabla a la que quiero pasarle la información pero no se pega nada. Gracias por la ayuda!
With ActiveSheet
    .[a1].PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False
  End With
Hola, colocando el código así como lo pusiste me da 'error 1004' (error en el método PasteSpecial)
Sub Guardar()
     Application.ScreenUpdating = False
     ThisWorkbook.Worksheets("Hoja1").Copy
     Application.Workbooks.Open ("C:\Documents and Settings\sserrano\Escritorio\SSerrano\excel\Libro1.xls")
     Sheets("Historial de mediciones").Select
With ActiveSheet
    .[a1].PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False
End With

  Application.CutCopyMode = False
End Sub
Revisa bien los rangos que estás pasando.
.[a1].PasteSpecial Paste:=xlPasteValues

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas