La madre de todos los objetos en sí es Excel. Lo llamamos el objeto Application. El objeto de la aplicación da acceso a una gran cantidad de opciones relacionadas Excel.

WorksheetFunction

Puede utilizar la propiedad WorksheetFunction en Excel VBA para acceder a las funciones de Excel.

  1. Por ejemplo, colocar una enlace: / VBA-crear a un macro-comandos # botón [botón de comando] en su hoja de trabajo y añadir la siguiente línea de código:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA calcula el promedio de los valores en la celda A1 y la celda A2 y deposita el resultado en la celda A3.

WorksheetFunction in Excel VBA

Nota: en lugar de Application.WorksheetFunction.Average, basta con utilizar WorksheetFunction.Average. Si nos fijamos en la barra de fórmulas, se puede ver que la fórmula en sí no se inserta en la celda A3. Para insertar la propia fórmula en la celda A3, utilice la siguiente línea de código:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

A veces, puede que le resulte útil para desactivar la actualización de pantalla (para evitar el parpadeo) durante la ejecución de código. Como resultado, el código se ejecutará más rápido.

  1. Por ejemplo, colocar una enlace: / VBA-crear a un macro-comandos # botón [botón de comando] en su hoja de trabajo y añadir las siguientes líneas de código:

Dim i As Integer

For i = 1 To 10000

Range("A1").Value = i

Next i

Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA muestra cada valor de una pequeña fracción de segundo, y esto puede llevar algún tiempo.

ScreenUpdating

  1. Para acelerar el proceso, a actualizar el código de la siguiente manera.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000

Range("A1").Value = i

Next i

Application.ScreenUpdating = True

Como resultado, el código se ejecutará mucho más rápido y sólo se verá el resultado final (10000).

DisplayAlerts

Se puede indicar a Excel VBA para no mostrar alertas durante la ejecución de código.

  1. Por ejemplo, colocar una enlace: / VBA-crear a un macro-comandos # botón [botón de comando] en su hoja de trabajo y añadir la siguiente línea de código:

ActiveWorkbook.Close

Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA cierra el archivo de Excel y le pide que guarde los cambios realizados.

DisplayAlerts

  1. Instruir Excel VBA no mostrar esta alerta durante la ejecución de código, actualizar el código de la siguiente manera.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Como resultado, Excel VBA cierra el archivo de Excel, sin preguntar si desea guardar los cambios realizados. Todos los cambios se pierden.

Cálculo

Por defecto, el cálculo se establece en automático. Como resultado, Excel vuelve a calcular el libro de forma automática cada vez que un valor que afecta a una fórmula cambios. Si el libro contiene muchas fórmulas complejas, se puede acelerar la macro mediante el establecimiento de cálculo a manual.

  1. Por ejemplo, colocar una enlace: / VBA-crear a un macro-comandos # botón [botón de comando] en su hoja de trabajo y añadir la siguiente línea de código:

Application.Calculation = xlCalculationManual

Al hacer clic en el botón de comando en la hoja de cálculo, Excel VBA establece el cálculo en manual.

  1. Usted puede verificar esto haciendo clic en Archivo, Opciones, Fórmulas.

Calculation Options

  1. Ahora, cuando se cambia el valor de la celda A1, el valor de la celda B1 ¿no vuelve a calcular.

Manual Calculation

Usted puede volver a calcular manualmente el libro presionando F9.

  1. En la mayoría de situaciones, se establecerá el cálculo automático de nuevo al final de su código. Basta con añadir la siguiente línea de código para lograr este objetivo.

Application.Calculation = xlCalculationAutomatic