VBA: elimine todas las filas después de la última fila en los datos copydos

Estoy intentando descubrir el código para eliminar todas las filas después de la última fila de mis datos copydos

Estoy copyndo los datos de la hoja de trabajo A a la hoja de trabajo B. La hoja de trabajo B ya tiene datos. si el número de filas en la hoja de trabajo A es inferior a la hoja de trabajo B, quiero eliminar todas las filas que no se copyron en la hoja de trabajo B de la hoja de trabajo A.

EG: Hoja de trabajo A = 50 filas Hoja de trabajo B = 60 filas. Copio la hoja de trabajo A a la hoja de trabajo B, deseo eliminar las 10 filas que no formaban parte de la hoja de trabajo A.

Aquí está mi código hasta ahora:

Dim shCurrentWeek As Worksheet Dim shPriorWeek As Worksheet Dim lr3 As Long Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week") Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week") lr3 = shPriorWeek.Range(Rows.Count, "A").End(xlUp).Row 'Copies necessary rows in CurrentWeek tab to PriorWeek tab shCurrentWeek.Range("A4:X" & lr).Copy shPriorWeek.Range("A2") shPriorWeek.Range("A4:X" & lr3 + 1 & ":A" & Rows.Count).EntireRow.Delete 

Estoy relativamente seguro de que mi lr3 está mal … no estoy seguro de cómo solucionarlo.

¡Gracias!

Dado que su código dice que shCurrentWeek.Range("A4:X" & lr).Copy shPriorWeek.Range("A2") (En otras palabras, está copyndo desde [fila de inicio 4] a [fila de inicio 2]) podría olvidarse de lr3 y hacer lo siguiente (creo):

 shCurrentWeek.Range("A4:X" & lr).Copy shPriorWeek.Range("A2") shPriorWeek.Range("A" & lr-2 & ":A10000").EntireRow.Delete 

Espero que esto ayude

desea que lr3 sea ​​el número de fila de la última fila (no el desplazamiento en comparación con sus datos pegados:

 lr3 = shPriorWeek.Rows.Count 

Entonces, la instrucción delete debería decir:

 shPriorWeek.Range("A4:A" & lr3).EntireRow.Delete 

Alternativamente, borrar primero y luego pegar (como se sugiere en los comentarios) es una buena forma y muy limpia.