VBA GoTo a Line Label

A instrução GoTo no VBA permite que você pule para uma linha de código.

Primeiro, crie um rótulo de linha em qualquer lugar do seu código:

1 Pular:

Em seguida, adicione a declaração “GoTo” para pular para o rótulo de linha

1 GoTo Skip

Exemplos GoTo

Este exemplo testa o ano. Se o ano for 2022 ou posterior, ele irá para o rótulo da linha de salto. Isso permite que você ignore o código se certas condições forem atendidas.

123456789101112 Sub GoTo_Example ()Dim year As Integerano = 2019Se ano> = 2019 Então GoTo Skip'Processar dados para anos <2022MsgBox "O ano é anterior a 2022"Pular:End Sub

GoTo Multiple Line Labels

Você também pode usar as instruções GoTo para pular para as linhas de código relevantes. Vamos ajustar nosso exemplo anterior para ir para diferentes locais de código com base em que ano é:

1234567891011121314151617181920212223242526272829303132 Sub GoTo_Statement ()Dim year As Integerano = 2019Se ano = 2019, entãoGoTo year2019ElseIf year = 2010 ThenGoTo year2020OutroGoTo year2021Fim seano2019:'Processo 2022MsgBox "O ano é 2022"GoTo EndProcano 2020:'Processo 2022MsgBox "O ano é 2022"GoTo EndProcano 2021:'Processo 2022+MsgBox "O ano é 2022+"EndProc:End Sub

Observe o “GoTo EndProc” antes de cada rótulo de linha. Adicionamos essa linha de código para que essas seções de código sejam ignoradas, a menos que sejam acessadas pelo “GoTo” relevante.

Fim do procedimento do manipulador de erros GoTo

Agora vamos usar o Tratamento de erros para ir para o final do procedimento se houver um erro.

123456789101112 Sub GoTo_OnError ()Dim i As IntegerOn Error GoTo EndProci = 5/0MsgBox iEndProc:End Sub

GoTo Repeat Code

Nosso último exemplo usará a instrução GoTo para repetir algum código.

Abaixo, estamos usando uma caixa de mensagem Sim / Não (Clique para saber mais) para confirmar que o usuário reconhece o aviso. Se eles clicarem em 'Não', a caixa de mensagem será exibida novamente até que eles cliquem em 'Sim' (veja GIF abaixo).

1234567891011 Sub GoTo_YesNoMsgBox ()RepeatMsg:Dim answer As Integeranswer = MsgBox ("AVISO: este arquivo foi aberto como um arquivo somente leitura, o que significa que as alterações feitas não serão salvas a menos que / até que você tenha direitos de acesso de gravação." & _Chr (13) e Chr (13) & "Selecione Arquivo, Salvar Como para salvar uma cópia antes de trabalhar neste arquivo." & vbNewLine & vbNewLine & "Você entendeu?", vbExclamation + vbYesNo, "AVISO!")If answer = vbNo Then GoTo RepeatMsg 'Repita até que o usuário clique em "Sim"End Sub

VBA GoTo a Line Label no Access VBA

Todos os exemplos acima funcionam exatamente da mesma forma no Access VBA e no Excel VBA.

1234567 Sub TestGoTo ()Em erro GoTo finalizandoDoCmd.OpenForm "FrmClients"Sair do Subfinal:MsgBox "Não é possível abrir o formulário"End Sub

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave