Copie varias celdas (que no estén dentro del rango) de un libro a otro libro

Copie varias celdas (que no estén dentro del rango) de un libro a otro libro

Me encontré con tu artículo"copiar varias celdas (que no estén dentro del rango) de una hoja a otra". Copié la macro de VBA y la pegué, hice referencia a las celdas en una fila oculta y asigné un botón para ejecutar. Funciona fantástico de una hoja a otra en el mismo libro. Mi problema es que necesito copiar de una hoja del libro de trabajo1 (factura) a otra hoja del libro de trabajo1 (cuentas por cobrar con antigüedad). ¿Se puede ajustar el código VBA existente para hacer eso?

Estos son los cambios que le hice a la Macro VBA para adaptarla a mis rangos

wks1.Cells(use_row,1) = wks.cells (50,1)
wks1.Cells(use_row,2) = wks.cells (50,2)
wks1.Cells(use_row,3) = wks.cells (50,3)
wks1.Cells(use_row,4) = wks.cells (50,4)
wks1.Cells(use_row,5) = wks.cells (50,5)
wks1.Cells(use_row,6) = wks.cells (50,6)

Respuesta1

Ciertamente. Todo lo que hay que hacer es crear una referencia (variable en el sub) al otro libro y elegir la hoja receptora en ese extremo.

Lo cual se logra aquí reemplazando las primeras filas, en las que se basa el resto del código (con sus propias modificaciones):

Dim wkb As Workbook,wkb2 as workbook
Dim wks as worksheet, wks1 As Worksheet
Set wkb = ThisWorkbook ' Or workbooks("SourceWorkbook.xlsm") if it's saved.
set wkb2 = Workbooks("OtherWorkbook.xlsx")
Set wks = wkb.Sheets("Sheet1") ' Name references are a little clearer.
Set wks1 = wkb2.Sheets("Sheet1")

También puedes agregar otro "set wkb2 = nada" al final, pero eso es más una precaución de seguridad que hacer mucho.

En cualquier caso, le sugiero que lea un poco sobre vba básico si necesita funciones relativamente complejas. Si no fuera por escribir rutinas completas, al menos haga usted mismo modificaciones aceptables. Por ejemplo, ese bit que escribiste podría hacerse en un bucle en lugar de copiar, ya que las columnas son secuenciales.

información relacionada