copiar columna en macro (excel)
Publicado por janet (1 intervención) el 23/10/2007 16:56:26
hola alguien me podria ayudar no he utilizado macros por lo tanto me vaso en lo que encuentro en internet tengo un codigo el cual copia celda por celda de las columnas que necesito, mi problema es como son mas de 5000 registro es muy lento el proceso este es mi codigo:
Sub Macro1()
For x = 1 To 10
Set Celda = Sheets("Hoja2").Range("A65536").End(xlUp).Offset(1, 0)
Celda.FormulaR1C1 = "=Hoja1!R[0]C[69]" ' nombre del trabajador
Celda.Offset(0, 1).FormulaR1C1 = "=Hoja1!R[0]C[1]" 'curp
Celda.Offset(0, 2).FormulaR1C1 = "=Hoja1!R[0]C[14]" 'lugar nacimiento
Celda.Offset(0, 3).FormulaR1C1 = "=Hoja1!R[0]C[12]" 'fecha de nacimiento
Celda.Offset(0, 4).FormulaR1C1 = "=Hoja1!R[0]C[14]" ' estado civil
Celda.Offset(0, 5).FormulaR1C1 = "=Hoja1!R[0]C[16]" 'calle
Celda.Offset(0, 6).FormulaR1C1 = "=Hoja1!R[0]C[16]" 'col
Celda.Offset(0, 7).FormulaR1C1 = "=Hoja1!R[0]C[16]" 'cp
Celda.Offset(0, 8).FormulaR1C1 = "=Hoja1!R[0]C[17]" 'ciudad
Celda.Offset(0, 9).FormulaR1C1 = "=Hoja1!R[0]C[42]" 'no. tarjeta
Celda.Offset(0, 10).FormulaR1C1 = "=Hoja1!R[0]C[1]" 'puesto
Celda.Offset(0, 11).FormulaR1C1 = "=Hoja1!R[0]C[6]" 'sexo
Celda.Offset(0, 12).FormulaR1C1 = "=Hoja1!R[0]C[17]" 'nacionalidad
Sheets("Hoja2").[A:AZ ].EntireColumn.AutoFit
ActiveWorkbook.Save
Next
End Sub
Es muy lento quisiera saber si hay alguna forma de copiar solo las columnas que necesito sin necesidad de hacerlo por celda ya que esto me tarda mucho en obtener los datos que necesito.
gracias
Sub Macro1()
For x = 1 To 10
Set Celda = Sheets("Hoja2").Range("A65536").End(xlUp).Offset(1, 0)
Celda.FormulaR1C1 = "=Hoja1!R[0]C[69]" ' nombre del trabajador
Celda.Offset(0, 1).FormulaR1C1 = "=Hoja1!R[0]C[1]" 'curp
Celda.Offset(0, 2).FormulaR1C1 = "=Hoja1!R[0]C[14]" 'lugar nacimiento
Celda.Offset(0, 3).FormulaR1C1 = "=Hoja1!R[0]C[12]" 'fecha de nacimiento
Celda.Offset(0, 4).FormulaR1C1 = "=Hoja1!R[0]C[14]" ' estado civil
Celda.Offset(0, 5).FormulaR1C1 = "=Hoja1!R[0]C[16]" 'calle
Celda.Offset(0, 6).FormulaR1C1 = "=Hoja1!R[0]C[16]" 'col
Celda.Offset(0, 7).FormulaR1C1 = "=Hoja1!R[0]C[16]" 'cp
Celda.Offset(0, 8).FormulaR1C1 = "=Hoja1!R[0]C[17]" 'ciudad
Celda.Offset(0, 9).FormulaR1C1 = "=Hoja1!R[0]C[42]" 'no. tarjeta
Celda.Offset(0, 10).FormulaR1C1 = "=Hoja1!R[0]C[1]" 'puesto
Celda.Offset(0, 11).FormulaR1C1 = "=Hoja1!R[0]C[6]" 'sexo
Celda.Offset(0, 12).FormulaR1C1 = "=Hoja1!R[0]C[17]" 'nacionalidad
Sheets("Hoja2").[A:AZ ].EntireColumn.AutoFit
ActiveWorkbook.Save
Next
End Sub
Es muy lento quisiera saber si hay alguna forma de copiar solo las columnas que necesito sin necesidad de hacerlo por celda ya que esto me tarda mucho en obtener los datos que necesito.
gracias
Valora esta pregunta


0