Código de pausa no VBA

Ainda é de admirar como seria ótimo se pudéssemos executar o código conforme nosso tempo permitir, porque até aquele momento conseguiríamos concluir o outro trabalho e preparar esses dados para outros trabalhos. Essa é a necessidade de qualquer tipo de tarefa em que precisamos executar um conjunto de códigos e trabalhar em outras coisas, conforme o requisito do código e até que a outra parte do código seja executada, estaríamos prontos com os dados que precisamos processar com o mesmo código. Isso pode ser feito com o aplicativo Sleep and Wait do VBA. Em suspensão e espera, podemos pausar o código a qualquer momento. A hora pode ser em segundos ou hora, conforme o relógio.

Sintaxe da pausa do VBA no Excel

A sintaxe para a pausa do VBA é a seguinte:

Exemplos para pausar o código VBA no Excel

Abaixo estão os exemplos diferentes para Pausar o código VBA no Excel.

Você pode fazer o download deste modelo de VBA Pause Excel aqui - Modelo de VBA Pause Excel

Exemplo # 1 - Pausa no VBA

Neste exemplo, veremos como o VBA Wait funciona. Como podemos ver, o aplicativo Wait permite que o Time seja booleano. O que significa que, se o valor que alimentamos estiver correto, obteríamos o valor como TRUE else FALSE.

Para ver como o VBA Pause funcionará com o aplicativo Wait no VBA,

Etapa 1: Primeiro, precisaríamos de um módulo onde escreveremos o código para isso. Então, vá ao menu Inserir e selecione Módulo na opção suspensa, como mostrado abaixo.

Etapa 2: Agora escreva a subcategoria no nome de Pausa no VBA ou em qualquer outro nome, conforme sua escolha, como mostrado abaixo.

Código:

 Sub VBAPause1 () End Sub 

Para a pausa do VBA, precisamos de um conjunto de texto que gostaríamos de imprimir com uma pausa. Vamos considerar que o texto seja " Get … Set … Go … !! ”. Portanto, selecionaremos 3 células diferentes nas quais manteremos essas palavras de texto separadamente em cada célula.

Etapa 3: selecione o primeiro intervalo de células como A1 ou qualquer outra célula, conforme a opção, e para atribuir o valor, selecione a função Value e atribua um valor conforme corrigimos acima. Ou escolha qualquer valor conforme a escolha.

Código:

 Sub VBAPause1 () Intervalo ("A1"). Valor = "Obter …" End Sub 

Etapa 4: atribua o restante dos valores da mesma maneira que fizemos para o primeiro valor. Aqui estamos escolhendo as células de A1 a C1 como nosso intervalo.

Código:

 Sub VBAPause1 () Intervalo ("A1"). Valor = "Obter …" Intervalo ("B1"). Valor = "Definir …" Intervalo ("C1"). Valor = "Ir .. !!!" End Sub 

Etapa 5: por acaso, se executarmos o código completo, obteremos todos os valores Get. Set … Vá .. !!! em um passo da célula A1 para C1, como mostrado abaixo.

Etapa 6: agora, se quisermos fazer uma pausa entre a pausa inteira, precisaremos usar o aplicativo Wait, como mostrado abaixo. Usaremos este aplicativo logo acima do último intervalo.

Código:

 Sub VBAPause1 () Intervalo ("A1"). Valor = "Obter …" Intervalo ("B1"). Valor = "Definir …" Application.Wait (Intervalo ("C1"). Valor = "Vá ..! !! "End Sub 

Etapa 7: No colchete do aplicativo Wait, podemos escrever a hora no formato 24HRs ou AM / PM. Estamos considerando o formato 24HRs. Agora escreva a hora no formato HH: MM: SS quando quisermos executar o restante do código após uma pausa.

Código:

 SubVBAPause1 () Intervalo ("A1"). Valor = "Obter …" Intervalo ("B1"). Valor = "Definir …" Application.Wait ("12: 26: 00") Intervalo ("C1") .Value = "Vá .. !!!" End Sub 

Etapa 8: Agora compile o código e execute-o novamente. Veremos que, na célula A1, obtemos o valor da célula como "Get …" e o cursor continua em espera.

Etapa 9: e quando o relógio chegar às 12:25:00 horas, o restante dos valores das células na célula B1 e C1 aparecerão novamente aparentemente como mostrado abaixo.

Exemplo # 2 - Pausa no VBA

Existe outra maneira pela qual podemos pausar o código sem adicionar ou alterar o tempo no aplicativo Aguardar várias vezes. Para isso, referiríamos o mesmo código que vimos no exemplo-1.

Etapa 1: Agora, entre parênteses no aplicativo Wait, escreva Now () com TimeValue que queremos fornecer. Vamos considerar a pausa de 30 segundos.

Código:

 SubVBAPause2 () Intervalo ("A1"). Valor = "Obter …" Intervalo ("B1"). Valor = "Definir …" Application.Wait (Now () + TimeValue ("00:00:30") ) Intervalo ("C1"). Valor = "Vá .. !!!" End Sub 

Etapa 2: quando executarmos o código, o VBA considerará o horário atual e adicionará uma pausa de 30 segundos. E funcionará de maneira semelhante à do exemplo-1. Para verificação, execute o código.

Primeiro, obteremos o valor da primeira célula em A1.

E após 30 segundos de pausa, ele fornecerá o restante dos valores nas células B1 e C1.

Exemplo # 3 - Pausa no VBA

Neste exemplo, veremos como o VBA Pause funciona com o aplicativo Sleep . Abaixo está a sintaxe do aplicativo Sleep, que permite ByVal dwMilliseconds apenas como LongPtr .

Agora, esse valor está realmente no VBA. Precisamos inserir o código pré-criado que está disponível no MS Docs, como mostrado abaixo.

Etapa 1: Agora escreva a subcategoria para VBA Pause, como mostrado abaixo.

Código:

 Sub VBAPause3 () End Sub 

Etapa 2: para isso, precisaríamos definir 2 variáveis ​​para o tempo de início e suspensão como String, como mostrado abaixo.

Código:

 Sub VBAPause3 () Dim Iniciando como String Dim Dormindo como String End Sub 

Etapa 3: Atribua a função de tempo à primeira variável que está iniciando .

Código:

 Sub VBAPause3 () Dim iniciando como string Dim adormecido como string iniciando = Time End Sub 

Etapa 4: E use Msgbox para ver o valor armazenado na variável Starting.

Código:

 Sub VBAPause3 () Dim Iniciando como String Dim Dormindo como String Starting = Time MsgBox Starting End Sub 

Etapa 5: Agora use o aplicativo Sleep e aloque o número de milissegundos até que desejemos dormir as funções.

Código:

 Sub VBAPause3 () Dim Iniciando como String Dim Dormindo como String Starting = Time MsgBox Iniciando Sleeping = Time End Sub 

Etapa 6: Agora, de maneira semelhante, dê o aplicativo Time à segunda variável Sleeping . E use MsgBox para ver o valor armazenado na variável Sleeping, como mostrado abaixo.

Código:

 Sub VBAPause3 () Dim iniciando como string Dim adormecido como string Iniciando = Time MsgBox Iniciando Sleeping = Time MsgBox Sleeping End Sub 

Por fim, compile o código e execute-o clicando no botão Reproduzir, localizado abaixo da barra de menus, como mostrado abaixo. Obteremos a caixa de mensagem com o horário que será o horário de início .

Depois de clicar em Ok, após 5000 milissegundos, veremos outra caixa de mensagem com Tempo de suspensão, como mostrado abaixo.

A hora de dormir começará logo após clicarmos no botão OK. Não é a diferença horária entre o horário de Início e o de Dormir. De fato, é o tempo depois que clicamos no botão OK da caixa de primeira mensagem.

Prós da pausa do VBA

  • É muito útil quando temos várias funções a serem executadas com algum intervalo de tempo.
  • Isso pode ser usado para fins de análise e cálculo.

Coisas para lembrar

  • Processos como Pausa no VBA não podem ser realizados gravando a macro.
  • É sempre melhor usar o processo mostrado no exemplo 2 para o aplicativo Wait, onde estaremos seguros de alterar a hora várias vezes, em vez de apenas manter a pausa de alguns segundos após o horário atual.
  • A aplicação de suspensão do exemplo-3 permite apenas milissegundos
  • O código de pré-construção mostrado no início do exemplo-3 é uma parte importante a ser aplicada, pois satisfaz a sintaxe do aplicativo Sleep.

Artigos recomendados

Este é um guia para a pausa do VBA. Aqui discutimos como podemos pausar o código a qualquer momento usando o aplicativo Aguarde e durma. Você também pode consultar nossos outros artigos sugeridos -

  1. Como usar a função IsNumeric do VBA?
  2. Criando caixa de combinação no Excel
  3. Inserir CheckBox no Excel
  4. Função VBA UCASE no Excel

Categoria: