Funciones de hoja de trabajo en macros VBA usando VBA en Microsoft Excel

Anonim

En el código VBA, si tiene que hacer referencia a ciertas funciones de la hoja de trabajo como Sum, Vlookup, etc., puede usarlas directamente usando el objeto Application. Entonces usaremos las funciones como -

Application.WorksheetFunction.Sum o Application.WorksheetFunction.Vlookup dónde WorksheetFunction es el método del objeto Aplicación.

Teniendo en cuenta que tenemos esta macro de prueba, si escribimos

Application.WorksheetFunction.

Obtendremos una ventana emergente que muestra las fórmulas que se muestran a continuación.

Entonces, por ejemplo, si desea sumar los valores de este rango en la columna A usando vba -

Tengamos una variable llamada SalesTotal que guardará la suma en ella. Para obtener el total en SalesTotal usaremos el siguiente código VBA en el módulo estándar:

Sub macro4 ()
Ventas débilesTotal siempre que
SalesTotal = Application.WorksheetFunction.Sum (Range ("A2: A6"))
MsgBox SalesTotal
End Sub

Para copiar el código anterior a su archivo,

  • Presione Alt + F11 en el teclado.
  • En el lado izquierdo, verá Objetos de Microsoft Excel.
  • Haga clic derecho y seleccione Insertar.
  • Luego haga clic en Módulo.
  • Copie el código en la ventana de código de la derecha.

Cuando usemos esta macro de muestra, obtendremos un mensaje que muestra el valor que está almacenado en Sales Total y se puede usar en otras líneas de código en la macro.

El resultado que obtendremos es:

Si desea que SalesTotal se muestre en la celda A7, puede cambiar la línea de código de

Total de ventas de Msgboxpara Hojas de trabajo ("Hoja1"). Rango ("A7"). Valor = Total de ventas

Teniendo en cuenta que también necesitamos las ventas promedio para estas cifras en la celda A9. Podemos usar el siguiente código

Sub macro5 ()
Ventas débilesTotal siempre que
Con hojas de trabajo ("Hoja1")
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Rango ("A7"). Valor = SalesTotal
.Range ("A9"). Value = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Terminar con
End Sub

Hay ligeros cambios en este código en comparación con el anterior.

  • En lugar de usar una variable para el Promedio, completé directamente ese valor después del cálculo en la celda A9. Por lo tanto, verá la línea .Range ("A9"). Value = Application.WorksheetFunction.Average (.Range ("A2: A6"))
  • Se ha eliminado la línea msgbox.
  • El valor de la variable SalesTotal va a la celda A7.
  • Idealmente, puede repetir la misma línea de código que se ha utilizado para el promedio, para la línea de código Suma reemplazando

SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))

.Rango ("A7"). Valor = SalesTotal

Con

.Range ("A7"). Value = Application.WorksheetFunction.Sum (.Range ("A2: A6"))

Sin embargo, se ha conservado para que pueda comprender las diferentes formas de codificar la misma tarea. De manera similar, podemos usar otras funciones mientras usamos Application.WorksheetFunction. Todas aquellas funciones que podemos usar en la hoja de trabajo directamente, las podemos usar aquí.

Esto facilita el uso de las funciones en el código para que podamos calcular las fórmulas necesarias sin tener que crear un código para la fórmula.

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbenos a sitio de correo electrónico