Como simplificar el siguiente codigo VBA

Estoy tratando de simplificar el siguiente codigo VBA para que mi excel no sea tan lento. Mi codigo tiene muchas instrucciones repetitivas y al parecer eso lo esta haciendo muy lento. Supongo que podria escribir una sola linea de codigo en lugar de tener todas estas repeticiones pero no se me ocurre como, ¿me podrias ayudar?

Application.ScreenUpdating = False
'INSERTAR FILA
Sheets("BD").Select
Range("A2").EntireRow.Insert
Sheets("REGISTRO").Select
'CODIGO
Range("B4").Copy
Sheets("BD").Select
Range("A2").PasteSpecial xlPasteValues
Sheets("REGISTRO").Select
'CODIGO DE ENLACE N1
Range("B6").Copy
Sheets("BD").Select
Range("B2").PasteSpecial xlPasteValues
Sheets("REGISTRO").Select
'CODIGO DE ENLACE N2
Range("B8").Copy
Sheets("BD").Select
Range("C2"). PasteSpecial xlPasteValues
Sheets("REGISTRO"). Selec

3 Respuestas

Respuesta
2

Prueba con estas lineas

Sub copia2()
Sheets("bd").Range("a2").EntireRow.Insert
With Sheets("registro")
    . Range("b4"). Copy: Sheets("bd"). Range("a2"). PasteSpecial
    . Range("b6"). Copy: Sheets("bd"). Range("b2"). PasteSpecial
    . Range("b8"). Copy: Sheets("bd"). Range("c2"). PasteSpecial
End With
End Sub
Respuesta
2

Aquí otra macro para ti para tu consideración:

Sub Test()
  Sheets("BD").Rows(2).Insert
  Sheets("BD").[A2].Resize(1, 3).Value = Array(Sheets("REGISTRO").[B4], Sheets("REGISTRO").[B6], Sheets("REGISTRO").[B8])
End Sub
Respuesta
1

Intenta así:

Set bd = Sheets("BD")
Set reg = Sheets("REGISTRO")
BD.Range("A2").EntireRow.Insert
bd.Range("A2").Value = reg.range("B4")
bd.Range("B2").Value = reg.range("B6")
bd.Range("C2").Value = reg.range("B8")
Sheets("REGISTRO"). Select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas