AJUDA COM PARAMARRAY
Boa tarde pessoal,
estou querendo passar um array por parametro mas não vai, alguém tem experiencia nisto?
segue codigo VB6 de exemplo:
estou querendo passar um array por parametro mas não vai, alguém tem experiencia nisto?
segue codigo VB6 de exemplo:
Private Sub Form_Load()
Dim xBOL() As Variant
Dim Q As Long
Dim i As Long
[ô]CARREGANDO DADOS PARA TESTE
List1.AddItem [Ô]1[Ô]
List1.AddItem [Ô]2[Ô]
List1.AddItem [Ô]3[Ô]
List1.AddItem [Ô]4[Ô]
[ô]REDIMENSIONANDO ARRAY
ReDim xBOL(List1.ListCount) As Variant
[ô]LOOP PARA CARREGAR DADOS NO ARRAY
For i = 0 To List1.ListCount - 1
If List1.List(i) Mod 2 = 0 Then
xBOL(Q) = i
Q = Q + 1
End If
Next i
[ô]PASSAGEN DE DADOS PARA A FUNÇÃO
mostra_par xBOL() [ô]** AQUI ESTA O PROBLEMA, O CONTEÚDO DO ARRAY NÃO VAI ADIANTE **
End Sub
[ô]FUNÇÃO QUE QUER RECEBER O ARRAY E IMPRIMIR
Sub mostra_par(ParamArray xPar() As Variant)
Dim X As Variant
For Each X In xPar [ô]O ARRAY VEM VARIO, SEM NADA
Debug.Print CStr(X)
Next
End Sub
Eu usaria uma Collection ao invés de Array:
Private Sub Form_Load()
[ô]CARREGANDO DADOS PARA TESTE
List1.AddItem [Ô]1[Ô]
List1.AddItem [Ô]2[Ô]
List1.AddItem [Ô]3[Ô]
List1.AddItem [Ô]4[Ô]
[ô]REDIMENSIONANDO ARRAY
Dim Colecao As Collection
Set Colecao = New Collection
For i = 0 To List1.ListCount - 1
If List1.List(i) Mod 2 = 0 Then
Colecao.Add (List1.List(i))
End If
Next i
MsgBox mostra_par(Colecao)
End Sub
[ô]FUNÇÃO QUE QUER RECEBER O ARRAY E IMPRIMIR
Function mostra_par(xPar As Collection)
Dim retorno As String
Dim X As Variant
For Each X In xPar [ô]O ARRAY VEM VARIO, SEM NADA
retorno = retorno & Str(X) & vbNewLine
Next
mostra_par = retorno
End Function
tenta esta alterações
[ô]FUNÇÃO QUE QUER RECEBER O ARRAY E IMPRIMIR
Private Sub Form_Load()
Dim xBOL() As Variant
Dim Q As Long
Dim i As Long
[ô]CARREGANDO DADOS PARA TESTE
List1.AddItem [Ô]1[Ô]
List1.AddItem [Ô]2[Ô]
List1.AddItem [Ô]3[Ô]
List1.AddItem [Ô]4[Ô]
[ô]REDIMENSIONANDO ARRAY
ReDim Preserve xBOL(List1.ListCount) As Variant
[ô]LOOP PARA CARREGAR DADOS NO ARRAY
Q = 0
For i = 0 To List1.ListCount - 1
If (List1.List(i) Mod 2) = 0 Then
xBOL(Q) = i
Q = Q + 1
End If
Next i
[ô]PASSAGEN DE DADOS PARA A FUNÇÃO
mostra_par xBOL
End Sub
[ô]FUNÇÃO QUE QUER RECEBER O ARRAY E IMPRIMIR
Sub mostra_par(xPar() As Variant)
Dim X As Variant
For Each X In xPar [ô]O ARRAY VEM VARIO, SEM NADA
MsgBox CStr(X)
Next
End Sub
Tópico encerrado , respostas não são mais permitidas