2012-01-16 17 views
7

Digamos que tengo una serie llamada rng1Excel VBA - Función de Ejecución de cada célula en el rango

Set rng1 = Worksheets("Sheet1").Range("A1","A5") 

¿Hay una manera rápida y fácil de realizar una función matemática, digamos que dividir todos los valores de las celdas por 2 , para todas las celdas en rng1?

¡Se agradece cualquier ayuda!

+1

Probar: 'Con Hojas de trabajo ("Sheet1"). Range ("B1: B5") .Formula = "= A1/2" .Value = .Value Fin con ' – Reafidy

+0

o utilice la función de pegado especial d ivide en su rango ya sea manualmente o con VBA – brettdj

Respuesta

13

Es muy fácil, pero el código final dependerá de dónde desee almacenar los nuevos valores. Por ejemplo, si desea almacenar los valores dividida por 2 en la siguiente columna:

Sub test() 

Dim cell As Range 

For Each cell In Range("A1:A5") 
    cell.Offset(, 1).Value = cell.Value/2 
Next 

End Sub 

mente que hay formas más eficientes de hacer esto que el uso compensado si su rango es grande, pero para un rango más pequeño, esto es totalmente aceptable y rápido.

Si desea sobrescribir los valores, sólo tiene que utilizar cell.Value en lugar de cell.Offset(,1).Value

1

Otra forma

Sub Main() 
    [B1:B5] = [INDEX((A1:A5/2),)] 
End Sub 

Cómo funciona así se explica here.

Cuestiones relacionadas