Henrique Vicent
não registrado
|
|
Postada em 17/04/2006 17:57 hs
Pessoal, boa tarde!!! Criei uma função chamada "Teste" que pode receber vários parametros. Esta função "Teste" chama a função "CallByName" do Vb. Public Sub Teste(ParamArray Parametros() As Variant) CallByName Form1, "erro", VbMethod, Parametros End Sub O problema é que quando passa os parametros para a função CallByName o vb mostra o seguinte erro: "Argumet not opcional". Alguem já passou por este problema ??? Alguem sabe me dizer como posso passar estes parametros para a função CallByName. Obrigado pela atenção, Henrique Vicentin
|
|
|
|
Ivã
|
CAXIAS DO SUL RS - BRASIL
|
|
Postada em 18/04/2006 08:54 hs
Bom dia! Algum dos parametros está faltando, por isso esse erro.
Ivã Boch
|
|
|
|
Postada em 18/04/2006 09:44 hs
o que faz essa funcao callbyname?
|
|
|
Henrique Vicent
não registrado
|
|
Postada em 18/04/2006 09:56 hs
Bom dia Pessoal!!! Na verdade o que eu preciso é o seguinte: Passar um parametro de uma função para outra, como no exemplo abaixo: Private Sub Form_Load() Call Rotina1("henrique") End Sub Private Sub Rotina1(ByVal Parametro1 As String) Call Rotina2(Parametro1) End Sub Private Sub Rotina2(ByVal Parametro2 As String) MsgBox Parametro2 End Sub A rotina acima funciona perfeitamente no VB, só que quando uso a opção ParamArray no lugar do ByVal o vb não aceita, como exemplo abaixo: Private Sub Form_Load() Call Rotina1("henrique") End Sub Private Sub Rotina1(ParamArray Parametro1() As Variant) Call Rotina2(Parametro1) End Sub Private Sub Rotina2(ParamArray Parametro2() As Variant) MsgBox Parametro2(0) End Sub Você sabe como eu posso passar estes parametros de uma função para outra ??? Valeu pessoal pelas resposta, Abraços, Henrique Vicentin
|
|
|
|
Postada em 18/04/2006 12:41 hs
Ele não aceita pq o paramarray funciona passando diversos parâmetros assim: ************************************************************** Private Sub Form_Load() Call Rotina1("henrique","Pedro","Lucas","Ana","Mônica","Gisele","Natalia") End Sub Private Sub Rotina1(ParamArray Parametro1() As Variant) Call Rotina2(Parametro1) End Sub ************************************************************** Blz?? Bom, qdo vc passa esses parâmetros eles ficam dentro de uma matriz, no caso acima seria Parametro1. Para passar para a segunda rotina vc está passando um array e não está passando a mesma coisa da primeira forma q foi citada... Quero dizer q Parmetro1 como tipo array é diferente de "henrique","Pedro","Lucas",... Para solucionar isso vc pode fazer assim: ************************************************************** Private Sub Form_Load() Call Rotina1("henrique","Pedro","Lucas","Ana","Mônica","Gisele","Natalia") End Sub Private Sub Rotina1(ParamArray Parametro1() As Variant) Call Rotina2 join(Parametro1,",") End Sub Private Sub Rotina2(ParamArray Parametro2() As Variant) dim Matriz as variant matriz = split(Parametro2,",") MsgBox matriz(0) End Sub *********************************************************** No caso separei a matriz por vírgulas mas vc pode colocar outro caracter separador...Parametro2 não precisa ser necessariamente um array... com este exemplo pode ser string... qq coisa é só postar t+
|
|
|
|