vettore dinamico



  • vettore dinamico
    di ema89 (utente non iscritto) data: 23/12/2014 11:40:45

    Ciao a tutti, mi trovo difronte questo tema d'esame e ho provato a risolverlo ma non riesco a venirne a capo
    ringrazio anticipatamente chiunque mi darà una qualsiasi risposta anche se parziale.


    Scrivere la sub VBA quesito1() che legge i valori contenuti nel foglio di lavoro nell'intervallo A1:T10 e che
    ' - Scrive i valori numerici nel vettore dinamico vDm che contiene all massimo 30 elementi (si ricorda che le
    ' celle vuote sono considerate dei numeri e NON vanno scritte nel vettore); quando si sono raggiunte i 30
    ' elementi non si scrive più sul vettore; se i numeri terminano prima del riempimento dei 30 elementi
    ' il vettore è ridimensionato al numero di elementi effettivamente inserito
    ' - Scrive i valori di tipo testo sul file uscita.txt
    ' - Conta gli elementi di tipo data incontrati



  • di Lucas87 data: 23/12/2014 12:19:00

    Ciao
    Mi sono sempre chiesto quale sarebbe la reazione di un professore che, frequentando questi forum, si dovesse trovare davanti ad una richiesta del genere e riconoscesse un suo esercizio e relativo studente.

    In questo modo non possiamo aiutarti...Non conoscendo gli argomenti spiegati il rischio è di usare funzioni e metodi non ancora affrontati a lezione. Verresti scoperto subito.
    L'unica cosa che si può fare è correggere un'eventuale codice scritto da te.



  • di ema89 (utente non iscritto) data: 23/12/2014 15:44:39

    ciao, questa è la prima volta che scrivo un testo d'esame, di solito sul forum chiedo conferme di codici che ho già scritto, ho fatto questa domanda solamente perchè sono 2 giorni che ci sto sopra e nn riesco a trovare una via per risolverlo..tutto qui, anzi la domanda è anche più lunga questa è solamente una parte su cui mi sn bloccato...cmq il mio problema è con il riempimento del vettore, in quanto continua ad uscirmi l'errore run 9..e nn capisco il perchè



  • di Lucas87 data: 23/12/2014 16:44:26

    Prova a guardare qui
    h t t p://mikevba.altervista.org/macro/mikevba020.htm
    Nel tuo caso il vettore (matrice) inizialmente è statico e poi diventa dinamico passando da 30 elementi al numero di elementi analizzati.
    Quindi inizialmente devi dichiarare
    dim matr(30)
    e poi usare
    Redim Preserve Matr(numero elementi totali)
    oppure aumentare di 1, scrivere, aumentare di 1,scrivere,...con
    Redim Preserve Matrice(ubound(matr)+1)
    Prova ad allegare il file con il codice che hai scritto così vediamo cosa non va



  • di ema89 (utente non iscritto) data: 23/12/2014 16:50:31

    ok grazie mille adesso, provo a fare così



  • di Zer0Kelvin data: 23/12/2014 18:22:46

    Salve a tutti.
    Tanto per chiarire un punto essenziale:
    L'istruzione Redim NON PUO' essere usata su matrici statiche,
    se si tenta di ridimensionare una matrice statica, si ottiene un errore di compilazione.
    La matrice DEVE essere dichiarata dinamica
     
    dim Matr() 
    ...