Saberexcel - o site de quem precisa aprender Macros Microsoft Excel VBA
As WorksheetFunctions ou Funções de Planilha VBA, são muito simples porém um pouco desconhecida dos aprendizes de VBA,
As WorksheetFunctions ou Funções de Planilhas de VBA, retornam um determinado valor sem a necessidade de usarmos determinadas fórmulas.
é muito eficaz trabalhar com as WorksheetFunctions (VBA) para retornar valores para determinado objeto ou células em qualquer folha de planilha. interessante, não é?
340 Planilhas exemplos de WorksheetFunctions (VBA)
Alguns exemplos das 340 Planilhas Exemplos WorkhseetFunctions: (Abaixo na tabela, amostra coleatadas aleatóriamente na Coleção 340 WorksheetFunctions)
Relação dos Exemplos de Planilhas Worsheetfunctions - Excel planilhas WorksheetFunctions Funções de Planilhas
Comprar as 340 Planilhas exemplo Microsoft Excel Funções de Planilha vba
Elaboramos 340 Exemplo de Planilhas de todas as Funções do Aplicativo retornando WorksheetFunctions (VBA) (todas "possíveis")
As planilhas retornam as WorksheetFunctions VBA, e também a função em fórmula e o help (ajuda) para cada função acionado automaticamente pelas macros.
Chamando funções de planilha de VBA
Nesta página vou descrever como fazemos para chamar chamar Funções de Planilha a partir do código VBA.
Introdução
Porque o VBA é usado por muitas aplicações além do Aplicativo Excel, as Funções de Planilha do Excel em si, não são parte da linguagem VBA. No entanto, você pode chamar funções de planilha diretamente através do aplicativo com fórmulas ou objeto através do Application.WorksheetFunctions classe. A diferença entre usar ou omitindo a WorksheetFunctions referência é a forma como os erros são tratados. vamos ver isso mais abaixo.
Chamar funções de planilha em VBA
Quase todas as funções de planilha podem ser chamadas do VBA(Visual Basic Application) utilizando o Aplicativo ou Application.Worksheet objetos. funções do Excel que tem VBA equivalentes nativas, como mês , não estão disponíveis. A sintaxe de uma Função de Planilha é a mesma da planilha usando a própria função. Por exemplo, uma função de planilha em uma célula pode ser:
usaremos um exemplo da função Procv (Procura na Vertical)
=PROCV (123; A1: C100; 3; FALSO)
Para usar o código em VBA, usando a WorksheetFunction (VBA) que faz a mesma coisa, você usaria:
Dim Ressposta As Variant
Resposta = Application.WorksheetFunction.VLookup(158,Range("A1:C100"),3,FALSE)
O número de parâmetros e seus significados são os mesmos ao chamar a função do VBA como elas são ao chamar a função a partir de uma célula da planilha. Como o código está escrito acima, você receberá um erro de execução se o valor de 158 não for encontrado no intervalo.
Portanto, você precisa colocar em seu projeto agumas armadilhas código de erro, caso ocorra:
Dim Resposta As Variant
On Error Resume Next
Err.Clear
Resposta = Application.WorksheetFunction.VLookup(158,Range("A1:C100"),3,FALSE)
If Err.Number = 0 Then
''''''''''''''''''''''''''''''''
'se foi encontrado continue normal o código de execução
''''''''''''''''''''''''''''''''
Else
''''''''''''''''''''''''''''''''
' valor não foi encontrado, aqui voce insere seu código para tratar o erro, sair, msgbox para digita novamente.
''''''''''''''''''''''''''''''''
End If
Tratamento de erro com funções de planilha
Isso nos leva ao tema da manipulação de erro ao chamar Funções de excel planilha em VBA. Como observado anteriormente, existem duas sintaxes básicas que você pode usar. Você pode usar um On Error declaração e, em seguida, testar o Err.Number valor para ver se ocorreu um erro, ou você pode declarar a variável resultado como uma variante do tipo e utilização IsError para ver se essa variável é uma variante do tipo de erro.
Qual o método que você usar depende se você usa o WorksheetFunction propriedade em seu código. Se você incluir o WorksheetFunction propriedade, os erros se manifestam como erro de execução, que precisa de um On Error declaração e um teste do Err.Number valor.
Se você não incluir o WorksheetFunction propriedade, você deve declarar a variável Resultado como Tipo Variant e testar essa variável com o IsError função. Exemplos de ambos são mostradas abaixo.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Erro em tempo de execução
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Resultado As Variant
On Error Resume Next
Err.Clear
Resultado = Application.WorksheetFunction.VLookup(158,Range("A1:C100"),2,False)
If Err.Number = 0 Then
''''''''''''''''''''''''''''''''''''''''''''''''''''
' se o valor (Procv) for encontrado, continue normalmente a execução do código.
'''''''''''''''''''''''''''''''''''''''''''''''''''''
Else
''''''''''''''''''''''''''''''''''''''''''''''''''''
' Caso NÃO encontre o valor procurado na funçao PROCV, trate o seu código de erros aqui.
'''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Uando IsError para detectar erros
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Resposta As Variant
Resposta = Application.VLookup(123,Range("A1:C100"),2,False)
If IsError(Res) = False Then
''''''''''''''''''''''''''''''''''''''''''''''''''''
'Caso o valor procurado pela função Procv for encontradom, continue normalmente a excecução do código.
'''''''''''''''''''''''''''''''''''''''''''''''''''''
Else
''''''''''''''''''''''''''''''''''''''''''''''''''''
' Se o Valor NÃO FOR ENCONTRADO, pela função Procv, Trate seu erro aqui.
'''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
Não há diferença significativa entre as duas sintaxes de chamada função de planilha. É principalmente uma questão de preferência pessoal se deve usar o WorksheetFunction Propriedade. Em geral, eu omiti-lo e usar IsError para detectar um erro.
Chamando Analysis Tool Pack Função Em VBA
Antes de Excel 2007, as funções disponibilizadas pela ferramenta de análise Pack (ATP) são fornecidos por um suplemento separado.
Você não pode chamá-los pelos métodos mostrados acima. Primeiro, você deve carregar o Analysis Tool Pack - VBA add-in. Note que este é diferente do Analysis Tool Pack item. Uma vez que este add-in está carregado, vá para o VBA, abra o seu projeto, e escolher referências da Ferramentas menu. Nesse diálogo, escolha ATPVBAEN.XLS na lista de referências. Depois de ter essa referência no lugar em seu código VBA, você pode chamar as funções do ATP como se fossem VBA funções nativas. Por exemplo,
Dim Resposta As Variant
Resposta = MRound(123.456, 0.5)
[A1].value = Resposta
Se houver a possibilidade de que você vai ter um processo com o mesmo nome de uma função de ATP, pode prefixar o nome da função com o nome da biblioteca para garantir que você está chamando a função correta.
Vamos ver o exemplo abaixo chamando um xla.,
Dim Resposta As Variant
Resposta = [atpvbaen.xls].MRound(123.456, 0.5)
Plan2.[A7].value = Resposta
Note que os colchetes ( [ ] ) são necessários o nome da biblioteca, pois o nome contém um ponto. O nome do add-in é uma abreviatura de Analysis ool Pack VBA English.
Se você estiver usando uma língua diferente do Inglês, os dois últimos caracteres do nome do add-in será a abreviação do nome do idioma.
Concluindo: As WorksheetFunctions ou Funções de Planilhas são muito usadas por Desenvolvedores Programadores para retornarem valores desejados, com muita eficácia.
Aprenda tudo sobre o Aplicativo Microsoft Excel VBA, sozinho, praticando com os produtos didáticos SaberExcel
Comentários
mais uma vez quero agradecer seu esforço em nos apresentar um trabalho tão bacana com as 340 planilhas exemplos de WorkSheetFucnti ons, esta sendo muito importante para nós aqui na Faculdade. No momento estamos desenvolvendo um trabalho sobre Funções de Planihas, que retornam valores via vba, estamos muito satisfeito com o material, é muito bom. Parabéns e todos envia um grande abraço. Cleyton
Sr. Marcondes , gostaria de saber se podes me ajudar , tenho uma planilha aqui no meu trabalho que necessita de um formulario para inserir dados pois , temos muitos itens e ficar procurando nas linhas leva muito tempo , e "tempo" é o que menos tenho aqui , temos um bom sistema ERP para controle do Supermercado , mas sabemos que ninguem escapa de uma boa planilha , sei que é possivel fazer um formulario , mas não tenho conhecimento nesta area , sei muito pouco , minha ideia seria um formulario onde digitemos o codigo ai ele busca os dados e atualizamos o que queremos .
Desde ja grato pela vossa atenção
Ps.
Pr. José Fabiano
Assine o RSS dos comentários