WorksheetFunction | ScreenUpdating | DisplayAlerts | Cálculo
A mãe de todos os objetos é o próprio Excel. Nós o chamamos de Objeto de aplicação. O objeto do aplicativo dá acesso a várias opções relacionadas ao Excel.
WorksheetFunction
Você pode usar a propriedade WorksheetFunction em Excel VBA para acessar as funções do Excel.
1. Por exemplo, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:
Intervalo ("A3"). Valor = Application.WorksheetFunction.Aadise (Range ("A1: A2"))
Quando você clica no botão de comando na planilha, o Excel VBA calcula a média dos valores na célula A1 e na célula A2 e coloca o resultado na célula A3.
Observação: em vez de Application.WorksheetFunction.Aadise, basta usar WorksheetFunction.Aadise. Se você observar a barra de fórmulas, verá que a fórmula em si não está inserida na célula A3. Para inserir a própria fórmula na célula A3, use a seguinte linha de código:
Intervalo ("A3"). Valor = "= MÉDIA (A1: A2)"
Atualização de tela
Às vezes, pode ser útil desativar a atualização da tela (para evitar tremulação) durante a execução do código. Como resultado, seu código será executado mais rápido.
1. Por exemplo, coloque um botão de comando em sua planilha e adicione as seguintes linhas de código:
Dim i As Integer
Para i = 1 a 10.000
Intervalo ("A1"). Valor = i
Proximo eu
Quando você clica no botão de comando na planilha, o Excel VBA exibe cada valor em uma pequena fração de segundo e isso pode levar algum tempo.
2. Para acelerar o processo, atualize o código da seguinte maneira.
Dim i As Integer
Application.ScreenUpdating = False
Para i = 1 a 10.000
Intervalo ("A1"). Valor = i
Proximo eu
Application.ScreenUpdating = True
Como resultado, seu código será executado muito mais rápido e você verá apenas o resultado final (10000).
DisplayAlerts
Você pode instruir o Excel VBA a não exibir alertas durante a execução do código.
1. Por exemplo, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:
ActiveWorkbook.Close
Quando você clica no botão de comando na planilha, o Excel VBA fecha o arquivo do Excel e pede que você salve as alterações feitas.
2. Para instruir o Excel VBA a não exibir este alerta durante a execução do código, atualize o código da seguinte maneira.
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Como resultado, o Excel VBA fecha seu arquivo do Excel, sem solicitar que você salve as alterações feitas. Todas as alterações são perdidas.
Cálculo
Por padrão, o cálculo é definido como automático. Como resultado, o Excel recalcula a pasta de trabalho automaticamente sempre que um valor que afeta uma fórmula é alterado. Se sua pasta de trabalho contém muitas fórmulas complexas, você pode acelerar sua macro definindo o cálculo como manual.
1. Por exemplo, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:
Application.Calculation = xlCalculationManual
Quando você clica no botão de comando na planilha, o Excel VBA define o cálculo como manual.
2. Você pode verificar isso clicando em Arquivo, Opções, Fórmulas.
3. Agora, quando você altera o valor da célula A1, o valor da célula B1 não é recalculado.
Você pode recalcular manualmente a pasta de trabalho pressionando F9.
4. Na maioria das situações, você definirá o cálculo como automático novamente no final do código. Basta adicionar a seguinte linha de código para fazer isso.
Application.Calculation = xlCalculationAutomatic