VBA – Como Utilizar as Funções de Planilha (e uma Lista Completa)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 31, 2023


Há muitas maneiras de usar funções no VBA. O VBA vem carregado com muitas funções internas. Você pode até mesmo criar suas próprias funções (UDFs). No entanto, você também pode utilizar muitas das funções do Excel no VBA usando Application.WorksheetFunction.

Como Usar Funções de Planilha no VBA

Para acessar uma função do Excel no VBA, adicione Application.WorksheetFunction na frente da função que deseja chamar. No exemplo abaixo, chamaremos a função Max do Excel:

Dim valormax as long
valormax = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)

A sintaxe das funções é a mesma, mas você digitará os argumentos da função como faria com qualquer outra função do VBA.

Observe que a sintaxe da função Max aparece quando você digita (semelhante à das funções VBA):

sintaxe funcao max

Método WorksheetFunction

WorksheetFunction é um método do objeto Application. Ele permite o acesso a muitas (não todas) as funções padrão da planilha do Excel. Em geral, você não terá acesso a nenhuma função de planilha que tenha uma versão VBA correspondente.

Você pode ver uma lista de muitas das funções de planilha mais comuns abaixo.

Application.WorksheetFunction vs. Application

Na verdade, há duas maneiras de acessar essas funções:

Application.WorksheetFunction (como visto acima):

valormax = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)

ou você pode omitir a WorksheetFunction

valormax = Application.Max(Range("a1").Value, Range("a2").Value)

Infelizmente, omitir a WorksheetFunction eliminará o Intellisense que exibe a sintaxe (veja a imagem acima). No entanto, ela tem uma grande vantagem em potencial: Tratamento de erros.

Se você usar Application, e sua função gerar um erro, ela retornará o valor do erro. Se você usar o método WorksheetFunction, o VBA lançará um erro em tempo de execução. É claro que você pode tratar o erro do VBA, mas geralmente é melhor evitar o erro em primeiro lugar.

Vamos dar uma olhada em um exemplo para ver a diferença:

Tratamento de Erros da WorksheetFunction do Vlookup

Tentaremos executar um Vlookup que não resultará em uma correspondência. Portanto, a função Vlookup retornará um erro.

Primeiro, usaremos o método WorksheetFunction. Observe como o VBA gera um erro:

Em seguida, omitimos o WorksheetFunction. Observe como o método

erro worksheetfunction vlookup

Em seguida, omitiremos a WorksheetFunction. Observe que nenhum erro é lançado e que, em vez disso, a função ‘value’ contém o valor de erro do Vlookup.

erro-janela-verificacao

Lista de Funções de Planilha do VBA

Abaixo você encontrará uma lista da maioria das WorksheetFunctions comuns do VBA.

FunctionDescription
Logical
ANDChecks whether all conditions are met. TRUE/FALSE
IFIf condition is met, do something, if not, do something else.
IFERRORIf result is an error then do something else.
ORChecks whether any conditions are met. TRUE/FALSE
Lookup & Reference
CHOOSEChooses a value from a list based on it's position number.
HLOOKUPLookup a value in the first row and return a value.
INDEXReturns a value based on it's column and row numbers.
LOOKUPLooks up values either horizontally or vertically.
MATCHSearches for a value in a list and returns its position.
TRANSPOSEFlips the oriention of a range of cells.
VLOOKUPLookup a value in the first column and return a value.
Date & Time
DATEReturns a date from year, month, and day.
DATEVALUEConverts a date stored as text into a valid date
DAYReturns the day as a number (1-31).
DAYS360Returns days between 2 dates in a 360 day year.
EDATEReturns a date, n months away from a start date.
EOMONTHReturns the last day of the month, n months away date.
HOURReturns the hour as a number (0-23).
MINUTEReturns the minute as a number (0-59).
MONTHReturns the month as a number (1-12).
NETWORKDAYSNumber of working days between 2 dates.
NETWORKDAYS.INTLWorking days between 2 dates, custom weekends.
NOWReturns the current date and time.
SECONDReturns the second as a number (0-59)
TIMEReturns the time from a hour, minute, and second.
TIMEVALUEConverts a time stored as text into a valid time.
WEEKDAYReturns the day of the week as a number (1-7).
WEEKNUMReturns the week number in a year (1-52).
WORKDAYThe date n working days from a date.
YEARReturns the year.
YEARFRACReturns the fraction of a year between 2 dates.
Engineering
CONVERTConvert number from one unit to another.
Financial
FVCalculates the future value.
PVCalculates the present value.
NPERCalculates the total number of payment periods.
PMTCalculates the payment amount.
RATECalculates the interest Rate.
NPVCalculates the net present value.
IRRThe internal rate of return for a set of periodic CFs.
XIRRThe internal rate of return for a set of non-periodic CFs.
PRICECalculates the price of a bond.
INTRATEThe interest rate of a fully invested security.
Information
ISERRTest if cell value is an error, ignores #N/A. TRUE/FALSE
ISERRORTest if cell value is an error. TRUE/FALSE
ISEVENTest if cell value is even. TRUE/FALSE
ISLOGICALTest if cell is logical (TRUE or FALSE). TRUE/FALSE
ISNATest if cell value is #N/A. TRUE/FALSE
ISNONTEXTTest if cell is not text (blank cells are not text). TRUE/FALSE
ISNUMBERTest if cell is a number. TRUE/FALSE
ISODDTest if cell value is odd. TRUE/FALSE
ISTEXTTest if cell is text. TRUE/FALSE
TYPEReturns the type of value in a cell.
Math
ABSCalculates the absolute value of a number.
AGGREGATEDefine and perform calculations for a database or a list.
CEILINGRounds a number up, to the nearest specified multiple.
COSReturns the cosine of an angle.
DEGREESConverts radians to degrees.
DSUMSums database records that meet certain criteria.
EVENRounds to the nearest even integer.
EXPCalculates the exponential value for a given number.
FACTReturns the factorial.
FLOORRounds a number down, to the nearest specified multiple.
GCDReturns the greatest common divisor.
INTRounds a number down to the nearest integer.
LCMReturns the least common multiple.
LNReturns the natural logarithm of a number.
LOGReturns the logarithm of a number to a specified base.
LOG10Returns the base-10 logarithm of a number.
MROUNDRounds a number to a specified multiple.
ODDRounds to the nearest odd integer.
PIThe value of PI.
POWERCalculates a number raised to a power.
PRODUCTMultiplies an array of numbers.
QUOTIENTReturns the integer result of division.
RADIANSConverts an angle into radians.
RANDBETWEENCalculates a random number between two numbers.
ROUNDRounds a number to a specified number of digits.
ROUNDDOWNRounds a number down (towards zero).
ROUNDUPRounds a number up (away from zero).
SINReturns the sine of an angle.
SUBTOTALReturns a summary statistic for a series of data.
SUMAdds numbers together.
SUMIFSums numbers that meet a criteria.
SUMIFSSums numbers that meet multiple criteria.
SUMPRODUCTMultiplies arrays of numbers and sums the resultant array.
TANReturns the tangent of an angle.
Stats
AVERAGEAverages numbers.
AVERAGEIFAverages numbers that meet a criteria.
AVERAGEIFSAverages numbers that meet multiple criteria.
CORRELCalculates the correlation of two series.
COUNTCounts cells that contain a number.
COUNTACount cells that are non-blank.
COUNTBLANKCounts cells that are blank.
COUNTIFCounts cells that meet a criteria.
COUNTIFSCounts cells that meet multiple criteria.
FORECASTPredict future y-values from linear trend line.
FREQUENCYCounts values that fall within specified ranges.
GROWTHCalculates Y values based on exponential growth.
INTERCEPTCalculates the Y intercept for a best-fit line.
LARGEReturns the kth largest value.
LINESTReturns statistics about a trendline.
MAXReturns the largest number.
MEDIANReturns the median number.
MINReturns the smallest number.
MODEReturns the most common number.
PERCENTILEReturns the kth percentile.
PERCENTILE.INCReturns the kth percentile. Where k is inclusive.
PERCENTILE.EXCReturns the kth percentile. Where k is exclusive.
QUARTILEReturns the specified quartile value.
QUARTILE.INCReturns the specified quartile value. Inclusive.
QUARTILE.EXCReturns the specified quartile value. Exclusive.
RANKRank of a number within a series.
RANK.AVGRank of a number within a series. Averages.
RANK.EQRank of a number within a series. Top Rank.
SLOPECalculates the slope from linear regression.
SMALLReturns the kth smallest value.
STDEVCalculates the standard deviation.
STDEV.PCalculates the SD of an entire population.
STDEV.SCalculates the SD of a sample.
STDEVPCalculates the SD of an entire population
TRENDCalculates Y values based on a trendline.
Text
CLEANRemoves all non-printable characters.
DOLLARConverts a number to text in currency format.
FINDLocates position of text within a cell.Case-sensitive.
LEFTTruncates text a number of characters from the left.
LENCounts number of characters in text.
MIDExtracts text from the middle of a cell.
PROPERConverts text to proper case.
REPLACEReplaces text based on it's location.
REPTRepeats text a number of times.
RIGHTTruncates text a number of characters from the right.
SEARCHLocates position of text within a cell.Not Case-sensitive.
SUBSTITUTEFinds and replaces text. Case-sensitive.
TEXTConverts a value into text with a specific number format.
TRIMRemoves all extra spaces from text.

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA