Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207

    Dichiarare e compilare array vba

    Ciao a tutti
    Devo creare 20 array in vb in questo modo ( per esempio ) :

    Dim Codici() As String
    ReDim Codici(Numero) As String

    di seguito, all'interno di un ciclo for ricerco valori in celle excel e compilo i 20 array....

    Premesso che non è molto che utilizzo vb, vorrei sapere se c'è un modo semplice ( tipo metodo java) per evitare di fare 80,90 righe tutte uguali ,rischiando errori stupidi...

    Grazie mille

  2. #2

    Re: Dichiarare e compilare array vba

    Originariamente inviato da lele85red
    Ciao a tutti
    Devo creare 20 array in vb in questo modo ( per esempio ) :

    Dim Codici() As String
    ReDim Codici(Numero) As String

    di seguito, all'interno di un ciclo for ricerco valori in celle excel e compilo i 20 array....

    Premesso che non è molto che utilizzo vb, vorrei sapere se c'è un modo semplice ( tipo metodo java) per evitare di fare 80,90 righe tutte uguali ,rischiando errori stupidi...

    Grazie mille
    Non ho capito qual'è il tuo problema: perchè vorresti fare le "80,90 righe tutte uguali"? Non sai cercare nelle varie celle?
    Inoltre: se già conosci le dimensioni del tuo vettore, perchè non lo dichiari subito così dim codici(20) as String?

    Specifica meglio ciò che non riesci a fare, altrimenti è impossibile capire..


    Ciao

    PS: quale sarebbe il metodo Java?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    No non ci siamo capiti
    Allora, esempio...
    Ho 20 Nomi , che tiro fuori da excel

    Per ogni nome, devo creare un Array... e gia per questo non vorrei fare ogni volta una dichiarazione...

    I nomi li ho spostati in un array al momento....

    Posso utilizzare un ciclo for per creare ogni singolo array ?

    Successivamente, per inserire vari valori automaticamente in questi array , utilizzo un ciclo...
    ed anche qui vorrei evitare di dover riempire il ciclo di 20 30 righe....

  4. #4
    E' difficile esprimersi non conoscendo a pieno la tua situazione, in ogni caso non potresti usare un array bidimensionale?
    Per ogni nome, quanti elementi ci devono essere nell'array?
    Tutti gli array vengono riempiti con un criterio preciso oppure varia a seconda del nome?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Purtroppo dovrei fare un tema per spiegare tutto
    cmq fai che :

    ho una tabella excel molto grande, identifico ogni riga con un codice.

    Estraggo alcuni di questi codici, ed ecco quindi un array string in vba con i codici

    Voglio creare per ogni codice un array di 20 valori... come posso farlo?



    P.S.
    facciamo per pezzi, magari si capisce di più...

  6. #6
    Perfetto, usa una matrice bidimensionale così composta:
    codice:
    dim matrice (n_righe, 20)
    dove n_righe è un valore Integer che identifica la dimensione della matrice stessa e dove 20 è il numero di valori che ogni riga assume.

    es. riga1 -> matrice(1,1) = tuo valore
    matrice(1,2) = altro tuo valore
    e così via fino a 20, per poi cambiare riga

    Spero di essere stato chiaro


    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    ne approfitto ancora e ti chiedo un altra cosa

    Ho la necessità di trovare quali dati sono presenti in una colonna... mi spiego meglio:
    In una colonna excel ho delle categorie (es: studente, laurendo,laureato, disoccupato ecc...)
    Ogni persona inserita avrà la sua determinata categoria...

    Vorrei inserire in un array tutti i tipi di categorie inserite, senza ripetizioni... se sono presenti 30 studenti, nell'array deve comparire una sola volta la voce studente ecc... )

    L'idea era quella di compilare un array inserendo un valore solo quando è diverso dal precedente.... questa soluzione è possibile solo se le categorie sono in ordine, però... non la mia situazione...
    spero di essermi spiegato :P

    La domanda ora è : c'è una soluzione più semplice per capire le occorrenze di un determinato numero di celle ? è necessario ordinare l'array ?

    Qualora fosse necessario ordinare.... è complicato ?

    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    errore

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    errore

  10. #10
    Originariamente inviato da lele85red
    ne approfitto ancora e ti chiedo un altra cosa

    Ho la necessità di trovare quali dati sono presenti in una colonna... mi spiego meglio:
    In una colonna excel ho delle categorie (es: studente, laurendo,laureato, disoccupato ecc...)
    Ogni persona inserita avrà la sua determinata categoria...

    Vorrei inserire in un array tutti i tipi di categorie inserite, senza ripetizioni... se sono presenti 30 studenti, nell'array deve comparire una sola volta la voce studente ecc... )

    L'idea era quella di compilare un array inserendo un valore solo quando è diverso dal precedente.... questa soluzione è possibile solo se le categorie sono in ordine, però... non la mia situazione...
    spero di essermi spiegato :P

    La domanda ora è : c'è una soluzione più semplice per capire le occorrenze di un determinato numero di celle ? è necessario ordinare l'array ?

    Qualora fosse necessario ordinare.... è complicato ?

    Grazie
    Penso di aver capito..ecco un mini-esempio:
    codice:
    dim categorie() as String
    dim nomedacontrollare as String
    dim exist as boolean
    
    nomedacontrollare = "Studente"
    exist = false
    for i = 0 to ubound(categorie)-1
     if nomedacontrollare = categorie(i) then exist = true: exit for
    next i
    
    if exist  = false then 
    redim preserve categorie(ubound(categorie))
    categorie(ubound(categorie)-1) = nomedacontrollare
    end if
    Ho scritto a memoria..


    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.