Depois revise o código resultante para os métodos Select e altere-os para referências Range. Por exemplo, o código de gravador a seguir aplica itálico a C4: C62:
Sub Macro1 ()
Faixa ("C4: C62"). Selecione
Selection.Font.Italic = True
End Sub
O gravador usa o método Select para identificar o intervalo. Depois de conhecer os métodos e as propriedades corretas - Font.Italic = True - poderá facilmente reescrever a Macro da seguinte maneira:
Sub Macro2 ()
Intervalo ("C4: C62"). Font.Italic = True
'Sheets ("Divisions"). Range ("C4: C62"). Font.Italic = True
'Range ("Tabela 3 [Espécie]"). Font.Italic = True
End Sub
Macro2 () realiza a mesma coisa com uma linha de código e sem selecionar o intervalo. Em resumo, você simplesmente combina as duas instruções e apaga o método Select e o objeto Selection. O código otimizado é mais eficiente e menos propenso a erros em tempo de execução.
As linhas comentadas mostram as referências de objeto Sheet e Table. A referência da planilha é necessária apenas se você desejar executar a Macro fora da planilha (Divisões, neste caso). A tabela faz referência à coluna de espécies em uma tabela chamada Table3.
Semelhante à seleção de intervalos e objetos para executar uma ação na planilha, uma referência explícita à planilha também atrasa o processamento. A solução é usar variáveis.
Por exemplo, o código a seguir faz referência à mesma célula (valor) seis vezes:
Função ReturnFeeSlow ()
Selecione o intervalo do caso ("I4")
Caso 1
ReturnFee = Range ("I4") * 10
Caso 2
ReturnFee = Range ("I4") * 20
Caso 3
ReturnFee = Range ("I4") * 30
Caso 4
ReturnFee = Range ("I4") * 40
Caso 5
ReturnFee = Range ("I4") * 50
Selecionar final
MsgBox ReturnFee, vbOKOnly
Função final
No mínimo, ReturnFeeSlow () faz duas referências explícitas a I4. Não está mudando o valor, ele está usando o valor em uma expressão simples. Nesse caso, é mais eficiente definir uma variável com o valor em I4 e usar a variável da seguinte forma:
Função ReturnFeeFast ()
Dim intFee As Integer
intFee = Range ("I4"). Valor
Selecione Case intFee
Caso 1
ReturnFee = intFee * 10
Caso 2
ReturnFee = intFee * 20
Caso 3
ReturnFee = intFee * 30
Caso 4
ReturnFee = intFee * 40
Caso 5
ReturnFee = intFee * 50
Selecionar final
MsgBox ReturnFee, vbOKOnly
Função final
Por favor, perdoe os exemplos inventados, mas o conceito é o ponto, não o propósito do código. Especificamente, os recursos de atualização integrados e as referências explícitas à planilha ou a um intervalo retardarão seu código. É certo que, com os sistemas rápidos de hoje, as macros simples nem sempre precisem de otimização. No entanto, se você estiver trabalhando com um aplicativo personalizado complexo, essas alterações fáceis de implementar deverão melhorar a eficiência.
Série de Livros nut Project
Série DONUT PROJECT 2021
Série DONUT PROJECT 2018
Série DONUT PROJECT 2015
Série DONUT PROJECT 2014
Clique aqui e nos contate via What's App para avaliarmos seus projetos
Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com
Nenhum comentário:
Postar um comentário