2010-04-26 9 views
8

Estoy trabajando en VBA y quiero insertar una fila en una ubicación específica sin seleccionarla. El problema que estoy teniendo es que después de seleccionar la fila, la hoja de cálculo se desplaza hacia abajo a esa fila cuando el script se termina de ejecutar. Quiero poder hacer esto sin que la hoja de cálculo se deslice hacia abajo a la fila insertada.Insertar filas sin seleccionar nada?

Rows(i & ":" & i).Select 
ActiveCell.EntireRow.Insert 

No quiero seleccionar A1 para llegar a la cima.

Respuesta

17

a hacer esto:

Cells(i,1).EntireRow.Insert 

aplicar la acción directamente a la gama deseada, en lugar de seleccionar en primer lugar y la aplicación de la acción de "activecell".

Algunas notas adicionales:

  • El "grabar una macro" función genera un código como su ejemplo, pero me parece que la selección de la celda de antemano rara vez es necesario al escribir su propio código.
  • Una ventaja lateral: ¡operar en la celda directamente en vez de seleccionarlo primero puede acelerar su código por un factor de 10x a 100x!
+0

Excelente, gracias! – sooprise

+0

+1 por mencionar el rendimiento – Scorchio

5

Rows(i & ":" & i).Insert insertará una fila a continuación sin cambiar la selección.

Cuestiones relacionadas