VBA: Copiar y pegar filas filtradas sin utilizar la propiedad de copia (para optimizar mi código)
Necesito reducir mi tiempo de código.
Puedo copiar y pegar con éxito utilizando la siguiente línea. BS
e Inputs
son los nombres de las hojas.
BS.Range("A3", BS.Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Copy
Inputs.Range("Z3").PasteSpecial xlPasteValues
Estoy intentando copiar sin utilizar la propiedad de copia, pero sólo copia la primera celda con el siguiente código.
Inputs.Range("Z3").Value = BS.Range("A3", BS.Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Value
Además, tengo números grandes como 62926080836884040921
. Solo pega 62926080836880000000
.
davy.ai
Para reducir el tiempo de tu código, puedes probar lo siguiente:
Usa la propiedad
Value
en lugar deCopy
yPasteSpecial
para copiar valores. Esto es más rápido y no requiere el uso del portapapeles.Evita utilizar
SpecialCells
tanto como sea posible, ya que puede ralentizar tu código. En su lugar, intenta utilizar otros métodos para filtrar tus datos, comoAutoFilter
.Para números grandes, utiliza el tipo de dato
Decimal
en lugar deDouble
para preservar todos los dígitos. También puedes dar formato a las celdas para que muestren el número completo utilizando un formato de número personalizado.