es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para reducir el tiempo de tu código, puedes probar lo siguiente:

    • Usa la propiedad Value en lugar de Copy y PasteSpecial 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, como AutoFilter.

    • Para números grandes, utiliza el tipo de dato Decimal en lugar de Double 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.

Comments are closed.