MATRIZ
Pessoal,
Como faço pra passar uma matriz como parà ¢metro para uma sub?
Tenho várias matrizes de mesmo tamanho (50,50) e de acordo com algumas condições, a cada momento uma matriz é passada para a outra sub.
Na sub que vai receber a matriz coloquei:
Como faço pra passar uma matriz como parà ¢metro para uma sub?
Tenho várias matrizes de mesmo tamanho (50,50) e de acordo com algumas condições, a cada momento uma matriz é passada para a outra sub.
Na sub que vai receber a matriz coloquei:
Private sub NomedaSub (byval matriz as variant)
mas não dá certo!
Alguém pode me ajudar?
Obrigada
Ana
APPAULAS,
Poderias especificar como declaraste as matrizes?
Abraços,
Poderias especificar como declaraste as matrizes?
Abraços,
Ana,
Veja este tópico
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=173450
Discutimos o mesmo assunto... creio que lá vc encontra a resolução para seu problema.
Veja este tópico
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=173450
Discutimos o mesmo assunto... creio que lá vc encontra a resolução para seu problema.
Private M1(50,50), M2(50,50), M3(50,50), M4(50,50) as string
OBS: os nomes das matrizes são fictÃcios
OBS: os nomes das matrizes são fictÃcios
Ana, vc olhou o Link que lhe passei??
Lá mostra extamente o que quer fazer...
Na verdade creio que se vc fizer assim já funciona:
Lá mostra extamente o que quer fazer...
Na verdade creio que se vc fizer assim já funciona:
Private sub NomedaSub (matriz() as variant)
Olhei o link, como vc sugeriu Marcelo, mas foi justamente o que fiz e continua não funcinando, na verdade, acho que o problema não é na passagem da matriz, quando o programa vai executar a sub que contém a matriz ocorre o erro: ByRef argument type mismatch e seleciona o código onde utilizo os elemento da matriz
por exemplo:
for i = 0 to 49
for j = 0 to 49
x = "Nome: " & M1(i,j) 'o erro ocorre aqui
next j
next i
por exemplo:
for i = 0 to 49
for j = 0 to 49
x = "Nome: " & M1(i,j) 'o erro ocorre aqui
next j
next i
Fiz assim e funcionou aqui:
[/c]
Private M1(50, 50) As String
[c]Private Sub teste(Matriz() As String)
For i = LBound(Matriz) To UBound(Matriz)
For j = LBound(Matriz) To UBound(Matriz)
MsgBox Matriz(i, j)
Next
Next
End Sub
Private Sub Form_Load()
teste M1
End Sub
[/c]
APPAULAS,
Declarasse o "x" como sendo de que tipo?
Deve funcionar da forma supracitada. Qualquer coisa, posta denovo que tentaremos solucionar teu problema.
Abraços,
Declarasse o "x" como sendo de que tipo?
Private Sub NomeDaSub(m1() as variant)
dim x as string
for i = 1 to 49
for j = 1 to 49
x = "Nome: " & m1(i,j)
next j
next i
Deve funcionar da forma supracitada. Qualquer coisa, posta denovo que tentaremos solucionar teu problema.
Abraços,
O seu erro é o mesmo de MUITOS aqui, Ana.
o correto é:
Quando vc coloca a virgula, vc define que na mesma LINHA será feita a declaração de OUTRA variavel com um outro tipo.
não é que nem as outras linguagens que interpretam que cada item da linha é do mesmo tipo
Ou seja:
é o mesmo que
a = variant
b = variant
c = variant
d = STRING
por isso vc ganhava um TYPE MISMATCH
M1, M2 e M3 são VARIANT e não STRING como vc esperava.
Private M1(50,50), M2(50,50), M3(50,50), M4(50,50) as string
o correto é:
Private M1(50,50) as string , M2(50,50) as string , M3(50,50) as string , M4(50,50) as string
Quando vc coloca a virgula, vc define que na mesma LINHA será feita a declaração de OUTRA variavel com um outro tipo.
não é que nem as outras linguagens que interpretam que cada item da linha é do mesmo tipo
Ou seja:
Dim a, b, c, d as string
é o mesmo que
a = variant
b = variant
c = variant
d = STRING
por isso vc ganhava um TYPE MISMATCH
M1, M2 e M3 são VARIANT e não STRING como vc esperava.
LIONHEART,
Grande! Meus parabéns. Estávamos quebrando a cabeça, hehe! Eu estranhei, porque quando fui testar aqui no meu VB, funcionou perfeitamente. Eu costumo utilizar uma linha para cada variável... Então, descobrimos!
Abraços!
Grande! Meus parabéns. Estávamos quebrando a cabeça, hehe! Eu estranhei, porque quando fui testar aqui no meu VB, funcionou perfeitamente. Eu costumo utilizar uma linha para cada variável... Então, descobrimos!
Abraços!
LIONHEART,
Eu não sabia desse "detalhe", valeu!
Fiz as alterações e tá funcionando!
Muito obrigada, a todos!
Ana
Eu não sabia desse "detalhe", valeu!
Fiz as alterações e tá funcionando!
Muito obrigada, a todos!
Ana
Tópico encerrado , respostas não são mais permitidas