Thursday 23 November 2017

Excel Vba Moving Average Code


Rolling Average Table Below, analisaremos um programa no Excel VBA que cria uma tabela média móvel. Coloque um botão de comando na sua planilha e adicione a seguinte linha de código: Range (quotB3quot).Value WorksheetFunction. RandBetween (0, 100) Esta linha de código insere um número aleatório entre 0 e 100 na célula B3. Queremos que o Excel VBA tome o novo valor de estoque e coloque-o na primeira posição da tabela de média móvel. Todos os outros valores devem deslocar um local e o último valor deve ser excluído. Crie um evento de alteração de planilha. O código adicionado ao Evento de Mudança da Planilha será executado pelo Excel VBA quando você alterar uma célula em uma planilha. 2. Clique duas vezes em Sheet1 (Sheet1) no Project Explorer. 3. Escolha a Planilha na lista suspensa à esquerda. Escolha Alterar na lista suspensa direita. Adicione as seguintes linhas de código ao Evento de Mudança da Planilha: 4. Declare uma variável chamada valor novo do tipo Inteiro e dois intervalos (primeirovalores e últimosvalores). Dim newvalue As Integer. Firstfourvalues ​​As Range, lastfourvalues ​​As Range 5. O Evento de Mudança da Planilha escuta todas as alterações na Sheet1. Só queremos que o Excel VBA faça algo se alguma coisa mudar na célula B3. Para conseguir isso, adicione a seguinte linha de código: Se Target. Address quotB3quot Then 6. Inicializamos o newvalue com o valor da célula B3, firstfourvalues ​​com Range (quotD3: D6quot) e lastfourvalues ​​com Range (quotD4: D7quot). Newvalue Range (quotB3quot).Value Set firstfourvalues ​​Range (quotD3: D6quot) Defina lastfourvalues ​​Range (quotD4: D7quot) 7. Agora vem o truque simples. Queremos atualizar a tabela média móvel. Você pode conseguir isso substituindo os últimos quatro valores pelos quatro primeiros valores da tabela e colocando o novo valor de estoque na primeira posição. Lastfourvalues. Value firstfourvalues. Value Range (quotD3quot).Value newvalue 8. Não esqueça de fechar a instrução if. 9. Finalmente, insira a fórmula MÉDIA (D3: D7) na célula D8. 10. Teste o programa clicando no botão de comando. Função média normal Abaixo, examinaremos um programa no Excel VBA que cria uma função definida pelo usuário que calcula a média de uma gama selecionada aleatoriamente, excluindo um ou mais valores que são outliers e não devem Ser calculado de forma média. As funções definidas pelo usuário precisam ser colocadas em um módulo. 1. Abra o Editor do Visual Basic e clique em Inserir, Módulo. 2. Adicione a seguinte linha de código: Função CUSTOMAVERAGE (rng As Range, lower As Integer. Upper As Integer) O nome da nossa função é CUSTOMAVERAGE. A parte entre os colchetes significa que damos ao Excel VBA um intervalo e duas variáveis ​​Inteiras como entrada. Nós nomeamos nosso range rng, uma variável Integer que chamamos de menor, e uma variável Integer que chamamos superior, mas você pode usar qualquer nome. 3. Em seguida, declaramos um objeto Range e duas variáveis ​​do tipo Integer. Chamamos a célula do objeto Range. Uma variável Integer que chamamos de total e uma variável Integer que contamos contagem. Dim cell As Range, total como Integer. Count As Integer 4. Queremos verificar cada célula em um intervalo selecionado aleatoriamente (esse intervalo pode ser de qualquer tamanho). No Excel VBA, você pode usar o loop For Each Next para isso. Adicione as seguintes linhas de código: Para cada célula Em rng Nota: rng e célula são escolhidas aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de se referir a esses nomes no resto do seu código. 5. Em seguida, verificamos cada valor nesse intervalo se cair entre os dois valores (inferior e superior). Se for verdade, incrementamos o total pelo valor da célula e incrementamos a contagem por 1. Adicione as seguintes linhas de código ao loop. Se cell. Value gt lower E cell. Value lt upper Then total total count. Value count count 1 End If 6. Para retornar o resultado desta função (a média desejada), adicione a seguinte linha de código fora do loop. Contagem total de CUSTOMAVERAGE 7. Não se esqueça de encerrar a função. Adicione a linha: 8. Agora você pode usar essa função como qualquer outra função do Excel para calcular a média dos números que se enquadram entre dois valores. Como um cheque, você pode excluir todos os valores inferiores a 10 e superiores a 30 e usar a função média padrão no Excel para ver se o Excel calcula a mesma média que nossa função média personalizada. Nossa função média personalizada funciona Nota: esta função está disponível apenas nesta pasta de trabalho.

No comments:

Post a Comment