Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Función WorksheetFunction.Sum

| 3 Comments

Función WorksheetFunction.Sum

La  Función WorksheetFunction.Sum nos permite obtener el resultado de la suma de los argumentos ingresados a la función, esta  función devuelve el resultado el cual es del tipo DOUBLE. Los  tipos de argumentos que acepta esta función son del tipo numérico, bolean (verdadero, falso) donde VERDADERO tendrá el valor de ‘1’ y FALSO el valor de ‘0’. Además, la función WorksheetFunction.Sum en VBA solo acepta 30 argumentos como máximo y un argumento como mínimo.

Si solo si un argumento esta compuestos por un rango de celdas, es decir, el argumento es un vector , la función WorksheetFunction.Sum solo tomara en cuenta los valores numéricos de este argumento, en otras palabras ignorara los componentes del vector que sean del tipo lógico (VERDADERO o FALSO), las celdas vacías, y los textos contenidos en el vector.

Sintaxis:

Application.WorksheetFunction.Sum(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20,Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

Si  utilizamos mas de 30 argumentos en la función , nos mostrara el siguiente error:

error

Ejemplo 1

Aplicar la  función WorksheetFunction.Sum con un  rango de celdas

 

 

VBA2

Vba

Lo que hace este código es leer  los valores de las celdas desde A1 hasta A10, luego aplicamos  la  función WorksheetFunction.Sum

e imprimimos el resultado en la celda C1 y lo mostramos en un message box.

Obteniendo el siguiente resultado:

 

VBA3

Ejemplo 2

Aplicar la  función WorksheetFunction.Sum  con un  rango de celdas (que incluya celdas vacías y valores lógicos), con un argumento numérico, y con un argumento lógico.

VBA5

 

VBA$

Esta función carga  los valores de A1  hasta A5 y lo asigna a una variable(vector),carga un valor numérico constante y lo asigna a la variable “b” y carga el valor de la celda  B1 (valor numérico).Finalmente, Suma todos estos argumentos con un argumento de valor lógico (en este caso TRUE=1).

La función WorksheetFunction.Sum ignorara las celdas vacías y los valores lógicos ,en este caso lo valores lógicos del primer argumento, cabe resaltar que la ya mencionada función suma el valor lógico del ultimo argumento , el cual hace que el resultado de la suma final se 124.1

Usando un messagebox   imprime el resultado.

VBA6

Autor: Carlos Perez Rodriguez

3 Comments

  1. En el ejemplo 2 , tengo una duda, cuando usan como argumento el valor lógico True.
    Resultado = Application.WorksheetFunction.Sum(a, b, c, True)
    si la función worksheetFuntion.sum ignora las celdas vacías y valores lógicos.

  2. Que función reemplazaría a esta, si es que tengo más de 30 argumentos y estos no tienen posición fija sino van cambiando de forma iterativa cada 4 o 5 casillas. Muchas gracias por su atención.

    • Hola Jorge

      Posiblemente sea necesario usar un FOR para recorrer todo el contenido que posiblemente deba ser considerado, dentro del for un IF para determinar si debe ser incluído en el cálculo o no … y dentro del IF un acumulador, que puede ser la función aqui descrita.

      Saludos.

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5