Ao invés de:
UserForm1.TextBox1.Text = Sheets("Plan1").mensagem1.Value
Mude para
UserForm1.TextBox1.Text = mensagem1
e assim por diante.
Entretanto, conceitualmente vc não está fazendo um correto uso de uma Function. Na verdade isso que vc fez é pra ser uma Sub, não uma Function.
Uma Function retorna um valor para o nome dela mesma, embora não seja obrigatório. Então, em algum ponto dentro de uma Function, há pelo menos uma linha dando a ela algum valor. Ex.:
Function Teste(x,y)
'blá, blá, blá
'blá, blá, blá
Teste = x * y -2 *x
'blá, blá, blá
End Function
Dentro de outras Subs (ou outras Functions), essa Function aparecerá geralmente sendo usada do lado direito de alguma igualdade. Ex:
Sub Principal()
Dim Valor1, Valor2
'blá, blá, blá
'blá, blá, blá
Valor1 = Teste(3,8)
Valor2 = Teste(1,1)
'blá, blá, blá
End Sub
Se não ficou claro, retorne.
Postado : 08/06/2018 10:22 am