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

    Errore 438 , codice vba Contains

    Non riesco a capire perchè il seguente codice mi da errore :

    Dim i As Long
    Dim strTemp As String
    Dim coll As New Collection

    For i = 1 To 3000
    strTemp = Foglio1.Cells(i, 1)
    If coll.Contains(strTemp) Then
    i = i
    Else
    coll.Add strTemp
    End If
    Next i

    L'intento è quello di avere in coll gli elementi presenti nella colonna 1 del foglio excel SENZA ripetizioni.
    Grazie

    P.S. i=i è li semplicemente per il then, non ha alcuno utilità :P

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Perchè l'ggetto coll non espone la funzione .Contains.

    Potrei suggerirti questo codice alternativo..

    codice:
    Private Sub CommandButton1_Click()
    Dim i As Long
    Dim strTemp As String
    Dim coll As New Collection
    
    For i = 1 To 3000
    strTemp = Foglio1.Cells(i, 1)
    If Find(coll, strTemp) = False Then
    coll.Add strTemp
    End If
    Next i
    End Sub
    
    Function Find(coll As Collection, name As String) As Boolean
    For s = 1 To coll.Count
    If coll.Item(s) = name Then
    Find = True
    Exit For
    End If
    Next
    End Function
    Da testare ovviamente....

    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Grazie mille

    Credevo bastasse creare una collezione per poi poter sfruttare "contains"...
    ora provo, nel caso se avrai tempo ti disturberò ancora...
    grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Ti chiedo una piccola cosa e mi scuso per "l'ignoranza vba" :P

    La dichiarazione della funzione è necessario inserirla nello stesso foglio di lavoro, o è possibile utilizzarla scrivendola in un modulo?
    Se possibile, basta scriverla in un modulo e fine?
    grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Originariamente inviato da lele85red
    La dichiarazione della funzione è necessario inserirla nello stesso foglio di lavoro, o è possibile utilizzarla scrivendola in un modulo?
    La puoi inserirla anche in un modulo.

    Sbagliare è umano, perseverare è diabolico.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Ciao
    Ti ringrazio per la risposta, il codice funziona e mi è tornato molto utile.
    Ho un problema, se hai voglia di darci un occhiata veloce...ti ringrazio...
    Creo una Funzione nel modulo

    codice:
    Function Anno(multi as Collection) As Collection
    Nel foglio di lavoro, nella sezione Option Explicit dichiaro
    codice:
    Dim Coll As New Collection
    Inserisco alcuni dati nella collezione coll...
    Successivamente, in un form, cerco di fare
    codice:
    Private Sub cmdOK_Click()
    Anno(Coll)
    ...
    L'applicazione mi segnala "Argomento non facoltativo" relativo a Coll...
    Magari sto perdendo io qualcosa per strada...

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Moderazione

    Originariamente inviato da lele85red
    Ti ringrazio per la risposta, il codice funziona e mi è tornato molto utile.
    Ho un problema, se hai voglia di darci un occhiata veloce...ti ringrazio...
    [...]
    Per ogni nuovo problema, occorre aprire una nuova discussione, come da Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Scusami... la prox volta sarò più attento...
    Se è un problema inserisco subito una nuova discussione... grazie

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Originariamente inviato da lele85red
    Scusami... la prox volta sarò più attento...
    Se è un problema inserisco subito una nuova discussione... grazie
    Visto che si parla di una cosa diversa, è meglio.

    Vedi tu se approfittarne per aggiungere ulteriori dettagli che potrebbero essere d'aiuto per affrontare il problema e che fossero eventualmente emersi nel frattempo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.