Risultati da 1 a 6 di 6

Discussione: limiti massimi funzione array



  1. #1
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    limiti massimi funzione array

    ciao a tutti,
    come da guida 2007,

    In questo esempio la funzione Array viene utilizzata per restituire un valore Variant contenente una matrice.

    Dim MyWeek, MyDay
    MyWeek = Array("lun", "mar", "mer", "gio", "ven", "sab", "dom")

    alimento una combobox di un Form, e fin qui tutto ok.

    Invece dei giorni della settimana (sono 7 come tutti sappiamo),
    io ci metto dei nomi e sono più di 2.000 (duemila).

    Domanda:
    qualcuno sa quanti caratteri può essere lunga la riga degli item verso destra?
    qualcuno sa quante interruzioni di riga si possono utilizzare con questa funzione?

    Potrei alimentare la combo leggendo con un For Next una colonna dove mettere i 2.000 nomi da inserire nell'array,
    ma per ora sono curioso di sapere i limiti massimi della funzione.

    Grazie a tutti.
    Frank


    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3200
    Versione Office
    Excel2010
    Likes ricevuti
    624
    Likes dati
    154

    Post

    Ciao Frank

  3. #3
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3200
    Versione Office
    Excel2010
    Likes ricevuti
    624
    Likes dati
    154

    Post

    Ciao Frank
    Da un mio vecchio testo leggo:
    'Questa routine restituisce il numero di dimensioni dell'array passato come argomento o 0 (zero) se non si 'tratta di un array.
    Function NumberOfDims(arr As Variant) As Integer
    Dim dummy As Long
    On Error Resume Next
    Do
    dummy = UBound(arr,NumberOfDims + 1)
    If Err then Exit Do
    NumberOfDims = NumberOfDims + 1
    Loop
    End Function
    Questo dovrebbe dare il numero di "elementi" di un array ma non dice nulla circa il numero di "caratteri" a destra. Presumo che, poiché la funzione restituisce un "Integer" quello "potrebbe" essere il limite massimo di "elementi".
    Aspetto tue nuove. Ciao,
    Mario

  4. #4
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4
    ciao Mario
    e grazie per la risposta,
    per ora, non è contare il numero degli argomenti che mi preme.
    Avendo tanti nomi da inserire nella combo, quello che ho notato è questo:
    in fase di aggiornamento manuale degli elementi nella finestra del codice, per poterli visualizzare a video li accodo creando delle interruzioni di linea con i caratteri " _"
    (spazio underscore).
    Il problema è che essendo troppi, ad un certo punto dice che è stato raggiunto il limite di "interruzioni di linea" per mi chiedo:
    se invece di interrompere la linea continuassi ad aggiungere elementi verso destra per diminuire il numero di righe di codice, per quanti caratteri posso andare a destra?
    E se questo non bastasse, quante sono le interruzioni di riga di cui posso usufruire?

    grazie ancora e buona giornata.
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  5. #5
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    525
    Versione Office
    2010 - Win10
    Likes ricevuti
    63
    Likes dati
    17
    prova... tante volte le risposte possiamo darcele da soli

    1) a dimensionare la matrice a 2000 elementi e vedi se lo accetta
    2) metti i 2000 nomi su di un foglio
    3) con un ciclo For vai a leggerli riempi la matrice
    Foi i=1 to 2000: Mat(i)=sheets("Foglio2").cells(i,1): next i
    4) scrivendo man mano l'indice su di una casella
    5) se si blocca puoi sempre leggere sulla casella l'ultimo valore processato


    PS: la strada di mettere 2000 testi direttamente nel codice non mi sembra ne pratica ne saggia.... una complicazione di affari semplici
    ....basta usare un foglio in più, di appoggio, e se non vuoi che sia visto nascondilo


    comunque... giocaci a trovare i limiti
    Codice: 
    Sub macro()
    Dim a(1 To 2000) As String
    Dim b As String
    Dim c As Integer
    
    For j = 1 To 200
       b = b & Str(j)
    Next j
    c = Len(b)
    For i = 1 To 2000
        a(i) = testo
    Next i
    MsgBox ("Elementi: " & i-1 & "    di caratteri: " & c)
    End Sub
    vengono accettati 2000 elementi da 692 caratteri cadauno... penso che basti

    :299:
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

  6. #6
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4
    ciao Zio,
    grazie pe l'attenzione ma se rileggi per bene il mio primo post,
    avevo già in mente la tua proposta, ma non è la risposta alla domanda che ho posto.
    grazie comunque
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

Discussioni Simili

  1. limiti numero di righe excel
    Di stefanofusco nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 14/03/17, 18:12
  2. [Risolto] Limiti di Access
    Di fauly nel forum Domande su Microsoft Access
    Risposte: 10
    Ultimo Messaggio: 07/03/17, 16:23
  3. [Risolto] Riempire array in un modulo e richiamare lo stesso array su un modulo diverso
    Di Domynix nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 07/01/17, 19:36
  4. Popolare un array con dati di altri array
    Di Lcbsm nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 08/03/16, 20:31
  5. Limiti scorrimento foglio
    Di Ste nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 26/07/15, 11:26

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •