Robert Blanco
unread,Jan 19, 2012, 2:03:53 PM1/19/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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.