Funciones de hoja de calculo en VBA

01/12/2005 - 17:58 por Gustavo | Informe spam
Hola a todos y desde ya muchas gracias.
tengo 2 rangos: "Canal" (que puede ser 1,2,3) y "ABC" (que puede ser
"A","B","C");
quiero contar con 2 condiciones; desde la hoja de cálculo lo puedo hacer sin
problemas, utilizo la función =SUMAPRODUCTO((Canal=1)*(ABC="A"))

Al querér hacer esto mismo desde macros, utilizo la instrucción miVariable =
_
Application.WorksheetFunction.SumProduct((Range("Canal")=1)*(Range("ABC")="A"))

el tema es que esta instrucción me da el error "No coinciden los tipos";
siendo la variable "miVariable" definida sin tipo por lo que el error está
del lado derecho de la igualdad.

Si me pueden dar una pista desde ya muy agradecido.
Gustavo Fellay

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/12/2005 - 22:23 | Informe spam
hola, Gustavo !

... 2 rangos: "Canal" (que puede ser 1,2,3) y "ABC" (que puede ser "A","B","C")
... contar con 2 condiciones desde la hoja de calculo... utilizo... =SUMAPRODUCTO((Canal=1)*(ABC="A"))
... hacer esto mismo desde macros, utilizo la instruccion
miVariable = _
Application.WorksheetFunction.SumProduct((Range("Canal")=1)*(Range("ABC")="A"))
... esta instruccion me da el error "No coinciden los tipos" [...]



aunque puedes usar funciones de hoja de calculo [como suproduct] desde vba...
la 'evaluacion' de formulas matriciales no tiene soporte en vba :-((
necesitas 'preguntarle' a excel [la aplicacion donde esta corriendo el vba] cual seria el resultado :))
lo cual, puedes hacer [en vba] por medio de la funcion evaluate("texto") ;) o sea... CAMBIA:
de -> miVariable = Application.WorksheetFunction.SumProduct((Range("Canal")=1)*(Range("ABC")="A"))
a -> miVariable = Evaluate("sumproduct((canal=1)*(abc=""a""))")

si cualquier duda [o informacin adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida