Este tutorial ensinará como retornar um valor de um subprocedimento no VBA.
Um subprocedimento não é projetado para retornar um valor - é para isso que um procedimento de função é usado. No entanto, pode haver um momento em que você esteja executando algum código em um subprocedimento em que precise obter um valor desse subprocedimento. A maneira de fazer isso é usar o Módulo ou Variáveis globais ou usar um Subprocedimento para preencher uma planilha do Excel.
Usando variáveis para retornar um valor
Você pode declarar variáveis no nível do módulo. Ao fazer isso, essas variáveis podem ser usadas em qualquer lugar dentro do módulo e as variáveis retêm seus valores. Para declarar uma variável no nível do módulo, simplesmente declare a variável na parte superior do seu módulo de código:
123456789 | Opção ExplícitaDim dblQty as DoubleSub TestA ()'chame o TestB subChamar TestB'mostra o valor da variável na janela do móduloDebug.Print dblQtyEnd Sub |
1234 | Sub TestB ()'preencher a variável do módulodblQty = 900End Sub |
Para colocá-los juntos, executaríamos TestA, que por sua vez chamaria TestB e nos forneceria o valor de 900 na janela imediata.
Isso só funcionaria dentro do módulo, pois a variável foi declarada usando a instrução Dim no nível do módulo.
Variável Global
Você pode declarar a variável em um nível global para usá-la em todos os módulos do projeto.
Usando um subprocedimento para preencher uma planilha do Excel
O Subprocedimento abaixo preencherá diretamente Intervalo A1 a C1 em sua planilha do Excel, retornando valores para as células do Subprocedimento.
12345 | Sub PopulateRange ()Intervalo ("A1") = "Produto"Intervalo ("B1") = "Quantidade"Intervalo ("C1") = "Custo"End Sub |
Você pode então fazer referência a esses valores em outro procedimento, referenciando os valores das células:
1234567 | Sub RetrieveRange ()Dim Product as String, Quant enquanto, Custo como o dobroProduto = intervalo ("A1")Quant = Faixa ("B1")Custo = intervalo ("C1")End Sub |