Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fórmula matricial muy extensa no se permite en VBA

230 views
Skip to first unread message

Robert Blanco

unread,
Jan 19, 2012, 2:03:53 PM1/19/12
to
Necesito aplicar a un botón una fórmula matricial que arroje el
resultado en una hoja diferente, pero no me está dando resultado.

Primero intenté "desmatriciarla" y no arroja error, pero obviamente el
resultado no es el correcto, de ésta manera:

Hoja5.Cells(20, 9).Formula = "=SUM(IF(planillamjt!
E2:E1000=""FEMENINO"",IF(planillamjt!
L2:L1000=""EMPLEADOS"",planillamjt!S2:S1000+planillamjt!
U2:U1000+planillamjt!W2:W1000+planillamjt!Y2:Y1000+planillamjt!
AA2:AA1000+planillamjt!AC2:AC1000+planillamjt!AE2:AE1000+planillamjt!
AG2:AG1000+planillamjt!AI2:AI1000+planillamjt!AK2:AK1000+planillamjt!
AM2:AM1000+planillamjt!AO2:AO1000)))"

Entonces, cuando quiero convertirla en matricial, me arroja el error
1004 "No se puede asignar la propiedad FormulaArray de la clase
Range", utilizando ésta fórmula:

Hoja5.Cells(20, 9).FormulaArray = "=SUM(IF(planillamjt!
E2:E1000=""FEMENINO"",IF(planillamjt!
L2:L1000=""EMPLEADOS"",planillamjt!S2:S1000+planillamjt!
U2:U1000+planillamjt!W2:W1000+planillamjt!Y2:Y1000+planillamjt!
AA2:AA1000+planillamjt!AC2:AC1000+planillamjt!AE2:AE1000+planillamjt!
AG2:AG1000+planillamjt!AI2:AI1000+planillamjt!AK2:AK1000+planillamjt!
AM2:AM1000+planillamjt!AO2:AO1000)))"

Investigando un poco, encontré esta alternativa con evaluate, pero en
la celda me escribe #¡VALOR! y mirando el código veo el error 2015, y
según lei, evaluate no funciona bien cuando supera los 255 caracteres:

resultado = Evaluate("SUM(IF(planillamjt!
E2:E1000=""FEMENINO"",IF(planillamjt!
L2:L1000=""EMPLEADOS"",planillamjt!S2:S1000+planillamjt!
U2:U1000+planillamjt!W2:W1000+planillamjt!Y2:Y1000+planillamjt!
AA2:AA1000+planillamjt!AC2:AC1000+planillamjt!AE2:AE1000+planillamjt!
AG2:AG1000+planillamjt!AI2:AI1000+planillamjt!AK2:AK1000+planillamjt!
AM2:AM1000+planillamjt!AO2:AO1000)))")
Hoja5.Cells(20, 9).Value = resultado

Aclaro que ésta última fórmula matricial funciona perfectamente,
ingresándola "a mano" en una celda.

Investigando por ahi lei que utilizando Sendkeys, se puede simular que
se presiona F2 sobre la celda con la fórmula y luego la combinación
Ctrl+Shift+Enter y asi se subsana el problema de la limitacion de 255
caracteres. Lastimosamente, no pude aplicar "SendKeys" en mi código y
no tengo certeza si puede funcionar.

Agradecería la ayuda al respecto.

berta.saen...@gmail.com

unread,
Aug 16, 2018, 5:09:49 AM8/16/18
to
HOla tengo el mismo error, como pudiste solucionarlo?
El dijous, 19 gener de 2012 20:03:53 UTC+1, Robert Blanco va escriure:
0 new messages