Otra de Macros

28/10/2004 - 02:39 por jjsosa | Informe spam
Hola, Pretendo que en una celda se inserte una formula (promedio), sin
embargo,la Matriz a la que se le aplica la formula tiene un tamaño
variable en cuanto a los renglones, como ejemplo:

A ó A
1 8
5 9
7 0
8

Para esto utilice una Macro con la siguiente sintaxis:

Range("A2").Activate 'Defino la casilla inicial
desde = ActiveCell.Address
Do While Not IsEmpty(ActiveCell.Offset(1, 0)) 'voy al final de la
columna
ActiveCell.Offset(1, 0).Activate
Loop
hasta = ActiveCell.Address 'Defino la casilla final
Range("B1").Activate 'Defino la celda donde pretendo escribir la formula
ActiveCell.Formula = "=AVERAGE(desde:hasta)"

de esta forma, lo que escribe es #¿NOMBRE? (dado que escribe
=PROMEDIO(desde:hasta))

Traté tambien lo siguiente:

ActiveCell.Formula = "=AVERAGE("&desde&":"&hasta&")"

de esta forma, ni siquiera me deja ejecutar, ya que me marca un Error de
compilación (Se esperaba: fin de la instrucción)

Alguien puede decirme que error estoy cometiendo?????? porque no me sirve
la referencia RC que hace la grabadora de Macros.

Gracias
 

Leer las respuestas

#1 Fernando Arroyo
28/10/2004 - 09:18 | Informe spam
La función PROMEDIO tan sólo usa los valores numéricos del rango que tiene que procesar, así que no necesitas decirle exactamente cual es dicho rango; basta con que sea más grande que el número máximo de filas y/o columnas que tendrá que procesar, y la propia función se encargará de contar las celdas con valores numéricos, sumarlas y hacer la división.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"MEneo" escribió en el mensaje news:
Hola, Pretendo que en una celda se inserte una formula (promedio), sin
embargo,la Matriz a la que se le aplica la formula tiene un tamaño
variable en cuanto a los renglones, como ejemplo:

A ó A
1 8
5 9
7 0
8

Para esto utilice una Macro con la siguiente sintaxis:

Range("A2").Activate 'Defino la casilla inicial
desde = ActiveCell.Address
Do While Not IsEmpty(ActiveCell.Offset(1, 0)) 'voy al final de la
columna
ActiveCell.Offset(1, 0).Activate
Loop
hasta = ActiveCell.Address 'Defino la casilla final
Range("B1").Activate 'Defino la celda donde pretendo escribir la formula
ActiveCell.Formula = "=AVERAGE(desde:hasta)"

de esta forma, lo que escribe es #¿NOMBRE? (dado que escribe
=PROMEDIO(desde:hasta))

Traté tambien lo siguiente:

ActiveCell.Formula = "=AVERAGE("&desde&":"&hasta&")"

de esta forma, ni siquiera me deja ejecutar, ya que me marca un Error de
compilación (Se esperaba: fin de la instrucción)

Alguien puede decirme que error estoy cometiendo?????? porque no me sirve
la referencia RC que hace la grabadora de Macros.

Gracias



Preguntas similares