Existem muitas maneiras de usar funções no VBA. O VBA vem carregado com muitas funções integradas. Você pode até 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 você deseja chamar. No exemplo abaixo, chamaremos de Função Máxima do Excel:
12 | Dim maxvalue enquantomaxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value) |
A sintaxe das funções é a mesma, no entanto, você inserirá os argumentos da função como faria com qualquer outra função VBA.
Observe que a sintaxe da função Max aparece quando você digita (semelhante às funções VBA):
Método de planilha de função
WorksheetFunction é um método do objeto Aplicativo. Ele permite que você acesse muitas (não todas) as funções padrão de planilha do Excel. Geralmente, 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. Aplicativo
Na verdade, existem duas maneiras de acessar essas funções:
Application.WorksheetFunction (como visto acima):
1 | maxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value) |
ou você pode omitir o WorksheetFunction
1 | maxvalue = Application.Max (Range ("a1"). Value, Range ("a2"). Value) |
Infelizmente, omitir o WorksheetFunction eliminará o Intellisense que exibe a sintaxe (veja a imagem acima). No entanto, tem uma grande vantagem potencial: Manipulação de erros.
Se você usar o aplicativo 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 de tempo de execução. Claro, você pode lidar com o erro do VBA, mas geralmente é melhor evitar o erro em primeiro lugar.
Vejamos um exemplo para ver a diferença:
Vlookup WorksheetFunction Error Handling
Tentaremos realizar 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 WorksheetFunction. Observe como o
Em seguida, omitiremos WorksheetFunction. Observe como nenhum erro é gerado e, em vez disso, a função de "valor" contém o valor de erro do Vlookup.
Lista de funções da planilha VBA
Abaixo, você encontrará uma lista da maioria das funções comuns de planilha do VBA.
Função | Descrição |
---|---|
Lógico | |
E | Verifica se todas as condições foram atendidas. VERDADEIRO FALSO |
E SE | Se a condição for atendida, faça algo; se não, faça outra coisa. |
IFERROR | Se o resultado for um erro, faça outra coisa. |
OU | Verifica se alguma condição foi atendida. VERDADEIRO FALSO |
Pesquisa e Referência | |
ESCOLHER | Escolhe um valor de uma lista com base em seu número de posição. |
HLOOKUP | Procure um valor na primeira linha e retorne um valor. |
ÍNDICE | Retorna um valor com base em seus números de coluna e linha. |
OLHO PARA CIMA | Procura valores horizontal ou verticalmente. |
PARTIDA | Pesquisa um valor em uma lista e retorna sua posição. |
TRANSPOR | Inverte a orientação de um intervalo de células. |
PROCV | Procure um valor na primeira coluna e retorne um valor. |
Data hora | |
ENCONTRO | Retorna uma data do ano, mês e dia. |
DATEVALUE | Converte uma data armazenada como texto em uma data válida |
DIA | Retorna o dia como um número (1-31). |
DAYS360 | Retorna dias entre 2 datas em um ano de 360 dias. |
EDATE | Retorna uma data, n meses de distância de uma data de início. |
EOMONTH | Retorna o último dia do mês, faltando n meses. |
HORA | Retorna a hora como um número (0-23). |
MINUTO | Retorna o minuto como um número (0-59). |
MÊS | Retorna o mês como um número (1-12). |
NETWORKDAYS | Número de dias úteis entre 2 datas. |
NETWORKDAYS.INTL | Dias úteis entre 2 datas, fins de semana personalizados. |
AGORA | Retorna a data e hora atuais. |
SEGUNDO | Devolve o segundo como um número (0-59) |
TEMPO | Retorna a hora de uma hora, minuto e segundo. |
VALOR DO TEMPO | Converte uma hora armazenada como texto em uma hora válida. |
WEEKDAY | Retorna o dia da semana como um número (1-7). |
WEEKNUM | Retorna o número da semana em um ano (1-52). |
DIA DE TRABALHO | A data em n dias úteis a partir de uma data. |
ANO | Retorna o ano. |
YEARFRAC | Retorna a fração de um ano entre 2 datas. |
Engenharia | |
CONVERTER | Converta o número de uma unidade para outra. |
Financeiro | |
FV | Calcula o valor futuro. |
PV | Calcula o valor presente. |
NPER | Calcula o número total de períodos de pagamento. |
PMT | Calcula o valor do pagamento. |
AVALIAR | Calcula a taxa de juros. |
NPV | Calcula o valor presente líquido. |
IRR | A taxa interna de retorno para um conjunto de CFs periódicos. |
XIRR | A taxa interna de retorno para um conjunto de CFs não periódicos. |
PREÇO | Calcula o preço de um título. |
INTRATE | A taxa de juros de um título totalmente investido. |
Em formação | |
ISERR | Testa se o valor da célula é um erro, ignora # N / A. VERDADEIRO FALSO |
ISERROR | Teste se o valor da célula é um erro. VERDADEIRO FALSO |
ISEVEN | Teste se o valor da célula é par. VERDADEIRO FALSO |
ISLOGICAL | Teste se a célula é lógica (VERDADEIRO ou FALSO). VERDADEIRO FALSO |
ISNA | Teste se o valor da célula é # N / A. VERDADEIRO FALSO |
ISNONTEXT | Teste se a célula não é texto (células em branco não são texto). VERDADEIRO FALSO |
ISNUMBER | Teste se a célula é um número. VERDADEIRO FALSO |
É ESTRANHO | Teste se o valor da célula é ímpar. VERDADEIRO FALSO |
ISTEXT | Teste se a célula é um texto. VERDADEIRO FALSO |
MODELO | Retorna o tipo de valor em uma célula. |
Matemática | |
abdômen | Calcula o valor absoluto de um número. |
AGREGAR | Defina e execute cálculos para um banco de dados ou uma lista. |
TETO | Arredonda um número para cima, para o múltiplo especificado mais próximo. |
COS | Retorna o cosseno de um ângulo. |
GRAUS | Converte radianos em graus. |
DSUM | Soma os registros do banco de dados que atendem a certos critérios. |
ATÉ | Arredonda para o número par mais próximo. |
EXP | Calcula o valor exponencial para um determinado número. |
FACTO | Retorna o fatorial. |
PISO | Arredonda um número para baixo, para o múltiplo especificado mais próximo. |
GCD | Retorna o maior divisor comum. |
INT | Arredonda um número para baixo até o número inteiro mais próximo. |
LCM | Retorna o mínimo múltiplo comum. |
LN | Retorna o logaritmo natural de um número. |
REGISTRO | Retorna o logaritmo de um número para uma base especificada. |
LOG10 | Retorna o logaritmo de base 10 de um número. |
MROUND | Arredonda um número para um múltiplo especificado. |
ÍMPAR | Arredonda para o número inteiro ímpar mais próximo. |
PI | O valor de PI. |
POTÊNCIA | Calcula um número elevado a uma potência. |
PRODUTOS | Multiplica uma matriz de números. |
QUOCIENTE | Retorna o resultado inteiro da divisão. |
RADIANOS | Converte um ângulo em radianos. |
RANDBETWEEN | Calcula um número aleatório entre dois números. |
VOLTA | Arredonda um número para um determinado número de dígitos. |
ARREDONDAR PARA BAIXO | Arredonda um número para baixo (em direção a zero). |
ARREDONDAR PARA CIMA | Arredonda um número para cima (longe de zero). |
PECADO | Retorna o seno de um ângulo. |
SUBTOTAL | Retorna uma estatística resumida para uma série de dados. |
SOMA | Soma os números. |
SUMIF | Soma os números que atendem a um critério. |
SUMIFS | Soma os números que atendem a vários critérios. |
SUMPRODUTO | Multiplica matrizes de números e soma a matriz resultante. |
BRONZEADO | Retorna a tangente de um ângulo. |
Estatísticas | |
MÉDIA | Números médios. |
AVERAGEIF | Média de números que atendem a um critério. |
MÉDIOS | Média de números que atendem a vários critérios. |
CORREL | Calcula a correlação de duas séries. |
CONTAR | Conta as células que contêm um número. |
CONT.valor | Conte as células que não estão em branco. |
CONTAR EM BRANCO | Conta as células que estão em branco. |
CONT.SE | Conta as células que atendem a um critério. |
COUNTIFS | Conta as células que atendem a vários critérios. |
PREVISÃO | Preveja valores de y futuros a partir da linha de tendência linear. |
FREQUÊNCIA | Conta os valores que se enquadram nos intervalos especificados. |
CRESCIMENTO | Calcula os valores Y com base no crescimento exponencial. |
INTERCEPTAR | Calcula a interceptação Y para uma linha de melhor ajuste. |
AMPLA | Retorna o maior valor k. |
PROJETO | Retorna estatísticas sobre uma linha de tendência. |
MAX | Retorna o maior número. |
MEDIANA | Retorna o número mediano. |
MIN | Retorna o menor número. |
MODO | Retorna o número mais comum. |
PERCENTIL | Retorna o percentil k. |
PERCENTIL.INC | Retorna o percentil k. Onde k é inclusivo. |
PERCENTIL.EXC | Retorna o percentil k. Onde k é exclusivo. |
QUARTIL | Retorna o valor quartil especificado. |
QUARTILE.INC | Retorna o valor do quartil especificado. Inclusivo. |
QUARTILE.EXC | Retorna o valor do quartil especificado. Exclusivo. |
CLASSIFICAÇÃO | Classificação de um número em uma série. |
RANK.AVG | Classificação de um número em uma série. Médias. |
RANK.EQ | Classificação de um número em uma série. Melhor classificação. |
DECLIVE | Calcula a inclinação da regressão linear. |
PEQUENA | Retorna o menor valor k. |
STDEV | Calcula o desvio padrão. |
STDEV.P | Calcula o SD de uma população inteira. |
STDEV.S | Calcula o SD de uma amostra. |
STDEVP | Calcula o SD de uma população inteira |
TENDÊNCIA | Calcula os valores Y com base em uma linha de tendência. |
Texto | |
LIMPAR | Remove todos os caracteres não imprimíveis. |
DÓLAR | Converte um número em texto no formato de moeda. |
ACHAR | Localiza a posição do texto em uma célula. Sensível ao caso. |
DEIXOU | Trunca o texto com vários caracteres da esquerda. |
LEN | Conta o número de caracteres no texto. |
MID | Extrai texto do meio de uma célula. |
APROPRIADO | Converte o texto para maiúsculas e minúsculas. |
SUBSTITUIR | Substitui o texto com base em sua localização. |
REPT | Repete o texto várias vezes. |
DIREITO | Trunca o texto com vários caracteres da direita. |
PROCURAR | Localiza a posição do texto dentro de uma célula. Não diferencia maiúsculas de minúsculas. |
SUBSTITUTO | Localiza e substitui texto. Maiúsculas e Minúsculas. |
TEXTO | Converte um valor em texto com um formato de número específico. |
APARAR | Remove todos os espaços extras do texto. |