Usar funciones de hoja de trabajo en una macro: ejemplos de código VBA

Hay muchas formas de usar funciones en VBA. VBA viene cargado con muchas funciones integradas. Incluso puede crear sus propias funciones (UDF). Sin embargo, también puede utilizar muchas de las funciones de Excel en VBA mediante Application.WorksheetFunction.

Cómo usar las funciones de la hoja de trabajo en VBA

Para acceder a una función de Excel en VBA, agregue Application.WorksheetFunction delante de la función que desea llamar. En el siguiente ejemplo, llamaremos a la función Max de Excel:

12 Dim maxvalue siempre quemaxvalue = Application.WorksheetFunction.Max (Rango ("a1"). Valor, Rango ("a2"). Valor)

La sintaxis de las funciones es la misma, sin embargo, ingresará los argumentos de la función como lo haría con cualquier otra función de VBA.

Observe que la sintaxis de la función Max aparece cuando escribe (similar a las funciones de VBA):

Método de función de hoja de trabajo

WorksheetFunction es un método de objeto Application. Le permite acceder a muchas (no todas) de las funciones estándar de la hoja de cálculo de Excel. Por lo general, no obtendrá acceso a ninguna función de la hoja de trabajo que tenga una versión de VBA correspondiente.

Puede ver una lista de muchas de las funciones de hoja de trabajo más comunes a continuación.

Aplicación, hoja de trabajo, función frente a aplicación

En realidad, hay dos formas de acceder a estas funciones:

Application.WorksheetFunction (como se ve arriba):

1 maxvalue = Application.WorksheetFunction.Max (Rango ("a1"). Valor, Rango ("a2"). Valor)

o puede omitir la WorksheetFunction

1 maxvalue = Aplicación.Max (Rango ("a1"). Valor, Rango ("a2"). Valor)

Desafortunadamente, omitir WorksheetFunction eliminará el Intellisense que muestra la sintaxis (vea la imagen de arriba). Sin embargo, tiene una gran ventaja potencial: Manejo de errores.

Si usa Aplicación y su función genera un error, devolverá el valor de error. Si usa el método WorksheetFunction, VBA arrojará un error de tiempo de ejecución. Por supuesto, puede manejar el error de VBA, pero generalmente es mejor evitar el error en primer lugar.

Veamos un ejemplo para ver la diferencia:

Manejo de errores de la función de hoja de trabajo de Vlookup

Intentaremos realizar un Vlookup que no resultará en una coincidencia. Entonces, la función Vlookup devolverá un error.

Primero, usaremos el método WorksheetFunction. Observe cómo VBA arroja un error:

A continuación, omitimos WorksheetFunction. Note como el

A continuación, omitiremos WorksheetFunction. Observe cómo no se arroja ningún error y, en cambio, la función "valor" contiene el valor de error de Vlookup.

Lista de funciones de la hoja de trabajo de VBA

A continuación, encontrará una lista de la mayoría de las funciones comunes de la hoja de trabajo de VBA.

FunciónDescripción
Lógico
YComprueba si se cumplen todas las condiciones. VERDADERO FALSO
SISi se cumple la condición, haga algo, si no, haga otra cosa.
SI ERRORSi el resultado es un error, haga otra cosa.
OComprueba si se cumplen las condiciones. VERDADERO FALSO
Búsqueda y referencia
ESCOGERElige un valor de una lista en función de su número de posición.
HLOOKUPBusque un valor en la primera fila y devuelva un valor.
ÍNDICEDevuelve un valor basado en sus números de fila y columna.
BUSCARBusca valores de forma horizontal o vertical.
FÓSFOROBusca un valor en una lista y devuelve su posición.
TRANSPONERInvierte la orientación de un rango de celdas.
BUSCARVBusque un valor en la primera columna y devuelva un valor.
Fecha y hora
FECHADevuelve una fecha de año, mes y día.
DATEVALUEConvierte una fecha almacenada como texto en una fecha válida
DÍADevuelve el día como un número (1-31).
DÍAS360Devuelve días entre 2 fechas en un año de 360 ​​días.
EDARDevuelve una fecha, n meses antes de una fecha de inicio.
MESESDevuelve el último día del mes, n meses fuera de la fecha.
HORADevuelve la hora como un número (0-23).
MINUTODevuelve el minuto como un número (0-59).
MESDevuelve el mes como un número (1-12).
DÍAS DE REDNúmero de días laborables entre 2 fechas.
NETWORKDAYS.INTLDías laborables entre 2 fechas, fines de semana personalizados.
AHORADevuelve la fecha y hora actuales.
SEGUNDODevuelve el segundo como un número (0-59)
TIEMPODevuelve el tiempo de una hora, minuto y segundo.
VALOR DEL TIEMPOConvierte una hora almacenada como texto en una hora válida.
DÍA LABORABLEDevuelve el día de la semana como un número (1-7).
WEEKNUMDevuelve el número de semana en un año (1-52).
DIA LABORALLa fecha n días hábiles a partir de una fecha.
AÑODevuelve el año.
YEARFRACDevuelve la fracción de un año entre 2 fechas.
Ingenieria
CONVERTIRConvierte el número de una unidad a otra.
Financiero
FVCalcula el valor futuro.
PVCalcula el valor actual.
NPERCalcula el número total de períodos de pago.
PMTCalcula el monto del pago.
ÍNDICECalcula la tasa de interés.
VPNCalcula el valor actual neto.
TIRLa tasa interna de rendimiento de un conjunto de FC periódicas.
XIRRLa tasa interna de rendimiento de un conjunto de FC no periódicas.
PRECIOCalcula el precio de un bono.
INTRARLa tasa de interés de un valor totalmente invertido.
Información
ISERRPruebe si el valor de la celda es un error, ignora # N / A. VERDADERO FALSO
ISERRORPruebe si el valor de la celda es un error. VERDADERO FALSO
INCLUSOPruebe si el valor de la celda es par. VERDADERO FALSO
ISLOGICOPrueba si la celda es lógica (VERDADERO o FALSO). VERDADERO FALSO
ISNAPruebe si el valor de la celda es # N / A. VERDADERO FALSO
ISNONTEXTPruebe si la celda no es texto (las celdas en blanco no son texto). VERDADERO FALSO
ES NÚMEROPrueba si la celda es un número. VERDADERO FALSO
ES IMPARPruebe si el valor de la celda es impar. VERDADERO FALSO
ISTEXTPrueba si la celda es texto. VERDADERO FALSO
ESCRIBEDevuelve el tipo de valor en una celda.
Matemáticas
abdominalesCalcula el valor absoluto de un número.
AGREGARDefinir y realizar cálculos para una base de datos o una lista.
TECHORedondea un número hacia arriba, al múltiplo especificado más cercano.
COSDevuelve el coseno de un ángulo.
GRADOSConvierte radianes a grados.
DSUMSuma los registros de la base de datos que cumplen con ciertos criterios.
INCLUSORedondea al número entero par más cercano.
ExpCalcula el valor exponencial de un número dado.
HECHODevuelve el factorial.
SUELORedondea un número hacia abajo, al múltiplo especificado más cercano.
GCDDevuelve el máximo común divisor.
EN TRedondea un número al número entero más cercano.
LCMDevuelve el mínimo común múltiplo.
LNDevuelve el logaritmo natural de un número.
INICIAR SESIÓNDevuelve el logaritmo de un número a una base especificada.
LOG10Devuelve el logaritmo en base 10 de un número.
MROUNDRedondea un número a un múltiplo especificado.
IMPARRedondea al entero impar más cercano.
PiEl valor de PI.
PODERCalcula un número elevado a una potencia.
PRODUCTOMultiplica una matriz de números.
COCIENTEDevuelve el resultado entero de la división.
RADIANOSConvierte un ángulo en radianes.
AL AZAR ENTRECalcula un número aleatorio entre dos números.
RONDARedondea un número a un número específico de dígitos.
REDONDEAR A LA BAJARedondea un número hacia abajo (hacia cero).
REDONDEORedondea un número hacia arriba (alejándose de cero).
PECADODevuelve el seno de un ángulo.
TOTAL PARCIALDevuelve una estadística de resumen para una serie de datos.
SUMASuma números.
SUMIFSuma números que cumplen un criterio.
SUMIFSSuma números que cumplen varios criterios.
SUMPRODUCTOMultiplica matrices de números y suma la matriz resultante.
BRONCEARSEDevuelve la tangente de un ángulo.
Estadisticas
PROMEDIONúmeros de promedios.
PROMEDIO SIPromedio de números que cumplen con un criterio.
PROMEDIO SIPromedio de números que cumplen con varios criterios.
CORRELCalcula la correlación de dos series.
CONTARCuenta las celdas que contienen un número.
COUNTACuente las celdas que no estén en blanco.
COUNTBLANKCuenta las celdas que están en blanco.
CONTARCuenta las celdas que cumplen un criterio.
CONTADOSCuenta las celdas que cumplen varios criterios.
PRONÓSTICOPredecir los valores de y futuros a partir de la línea de tendencia lineal.
FRECUENCIACuenta los valores que se encuentran dentro de los rangos especificados.
CRECIMIENTOCalcula los valores de Y según el crecimiento exponencial.
INTERCEPTARCalcula la intersección en Y para una línea de mejor ajuste.
GRANDEDevuelve el k-ésimo valor más grande.
LINESTDevuelve estadísticas sobre una línea de tendencia.
MAXDevuelve el número más grande.
MEDIANADevuelve el número mediano.
MINDevuelve el número más pequeño.
MODODevuelve el número más común.
PERCENTILDevuelve el percentil k.
PERCENTILE.INCDevuelve el percentil k. Donde k es inclusivo.
PERCENTILE.EXCDevuelve el percentil k. Donde k es exclusivo.
CUARTILLADevuelve el valor del cuartil especificado.
CUARTIL.INCDevuelve el valor del cuartil especificado. Inclusivo.
CUARTIL.EXCDevuelve el valor del cuartil especificado. Exclusivo.
RANGORango de un número dentro de una serie.
RANK.AVGRango de un número dentro de una serie. Promedios.
RANK.EQRango de un número dentro de una serie. Bromear.
PENDIENTECalcula la pendiente a partir de la regresión lineal.
PEQUEÑADevuelve el k-ésimo valor más pequeño.
STDEVCalcula la desviación estándar.
STDEV.PCalcula la DE de toda una población.
STDEV.SCalcula la DE de una muestra.
STDEVPCalcula la DE de toda una población.
TENDENCIACalcula los valores de Y basándose en una línea de tendencia.
Texto
LIMPIOElimina todos los caracteres no imprimibles.
DÓLARConvierte un número en texto en formato de moneda.
ENCONTRARLocaliza la posición del texto dentro de una celda. Sensible a mayúsculas y minúsculas.
IZQUIERDATrunca el texto varios caracteres de la izquierda.
LENCuenta el número de caracteres del texto.
MEDIOExtrae texto del medio de una celda.
ADECUADOConvierte el texto en mayúsculas y minúsculas.
REEMPLAZARReemplaza el texto según su ubicación.
REPETIRRepite el texto varias veces.
DERECHATrunca el texto varios caracteres de la derecha.
BUSCARLocaliza la posición del texto dentro de una celda. No distingue entre mayúsculas y minúsculas.
SUSTITUIRBusca y reemplaza texto. Distingue mayúsculas y minúsculas.
TEXTOConvierte un valor en texto con un formato de número específico.
PODARElimina todos los espacios adicionales del texto.
wave wave wave wave wave