Erro ao redimensionar array  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Erro ao redimensionar array

Mensagempor klarc28 » Qui Fev 20, 2020 7:46 am

O erro aparece na linha:

Código: Selecionar todos
ReDim Preserve matriz(cont - 1, 17)
É estudando que se consegue. Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.
klarc28
Membro
Membro
 
Mensagens: 1410
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 35 times
Have thanks: 588 times

{ SO_SELECT }

Re: Erro ao redimensionar array

Mensagempor EdsonBR » Qui Fev 20, 2020 10:07 am

Klark, só dá pra redimensionar a última dimensão de uma matriz multidimensional. Então,

ReDim Matriz ( 3, n) passa mas ReDim Matriz ( n, 3) não passa.
Imagem

For this post the author EdsonBR thanked:
klarc28 (Qui Fev 20, 2020 10:44 am)
Avatar do usuário
EdsonBR
Membro
Membro
 
Mensagens: 676
Registrado em: Qui Nov 05, 2015 11:43 pm
Localização: Joinville, SC
Has thanked: 147 times
Have thanks: 442 times

Re: Erro ao redimensionar array

Mensagempor EdsonBR » Qui Fev 20, 2020 11:28 am

É uma limitação um pouco desagradável mesmo. Muitos sustentam que é só questão de atitude, de "pensar fora da caixa", ou seja, imaginar que linhas são colunas e vice-versa que não faria diferença alguma.
Mas há várias maneiras de contornar essa limitação além ou inclusive essa acima, mas sempre considerando que sejam apenas matrizes bidimensionais.
  1. Redimensionar o último índice numa matriz temporária depois através de loop inverter o primeiro índice com o segundo numa matriz definitiva;
  2. Fazer o mesmo anterior, mas usando o método Application.Transpose do Excel: método com alguns maus comportamentos e limitações quanto ao tamanho máximo mas muito útil e rápido;
  3. Usar um Array de Array, redimensionando o array mais externo;
  4. Lançar num range vazio e inverter;
  5. Usando o método Application.Index;
  6. Usando uma Collection;
  7. Usando um Dictionary;
  8. ...
Depende da necessidade e robustez do código, mas principalmente de preferências e hábitos...
Imagem

For this post the author EdsonBR thanked:
klarc28 (Qui Fev 20, 2020 11:38 am)
Avatar do usuário
EdsonBR
Membro
Membro
 
Mensagens: 676
Registrado em: Qui Nov 05, 2015 11:43 pm
Localização: Joinville, SC
Has thanked: 147 times
Have thanks: 442 times

Re: Erro ao redimensionar array  [Resolvido]

Mensagempor EdsonBR » Qui Fev 20, 2020 11:28 am

Ué, cadê sua última pergunta onde vc cita o uso do Collection...
Imagem
Avatar do usuário
EdsonBR
Membro
Membro
 
Mensagens: 676
Registrado em: Qui Nov 05, 2015 11:43 pm
Localização: Joinville, SC
Has thanked: 147 times
Have thanks: 442 times

Re: Erro ao redimensionar array

Mensagempor klarc28 » Qui Fev 20, 2020 11:40 am

.
É estudando que se consegue. Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.
klarc28
Membro
Membro
 
Mensagens: 1410
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 35 times
Have thanks: 588 times

Re: Erro ao redimensionar array

Mensagempor EdsonBR » Qui Fev 20, 2020 11:54 am

Eu ainda estava elaborando a resposta quando vc apagou.

Não me leve a mal, mas penso que vc poderia reavaliar isso, amigo Klark, para quem frequenta fóruns, acho um pouco estranho isso de apagar total ou parcialmente mensagens que já foram postadas, principalmente se estão sendo respondidas ainda. O fluxo das ideias fica prejudicado quando a gente lê um diálogo em que um dos interlocutores apaga seus rastros, fica parecendo "conversa de loucos". Um dialoga, o outro responde com um ponto, outro diálogo, outro ponto. Ou um vazio, como neste caso, hehehe...

Acho válido sim, editar algo imediatamente após postado para corrigir algo que foi esquecido de inserir, um anexo, parte de um código, essas coisas...

Se postou algo que não foi suficientemente perfeito ou achou uma solução melhor no meio do percurso, deixe as mensagens anteriores intactas, isso mostra para outras pessoas como evoluiu desde um problema até sua solução final.

Lembrando sempre que: "Há três coisas na vida que nunca voltam atrás: a flecha lançada, a palavra pronunciada e a oportunidade perdida."
Imagem
Avatar do usuário
EdsonBR
Membro
Membro
 
Mensagens: 676
Registrado em: Qui Nov 05, 2015 11:43 pm
Localização: Joinville, SC
Has thanked: 147 times
Have thanks: 442 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: MSN [Bot] e 9 visitantes