Tämä opetusohjelma opettaa sinulle, kuinka täyttää joukko yksilöllisillä arvoilla VBA: n sarakkeesta.
Täytä taulukko ainutlaatuisilla arvoilla sarakkeesta
Arvoluettelon ottaminen Excel -taulukosta taulukkoon on Excelin rivien selaamista ja taulukon täyttämistä.
Harkitse seuraavaa Excel -taulukon asiakasluetteloa.
Silmukan avulla voimme täyttää taulukon VBA: ssa. Tavallinen silmukka kulkee kuitenkin jokaisen rivin läpi, mukaan lukien päällekkäiset rivit, ja päädyt päällekkäisiin arvoihin taulukossasi.
Ratkaisu kiertää solut läpi ja täyttää kokoelmaobjekti arvoilla kokoelmaobjektina ei salli päällekkäisyyksiä. Voit sitten käyttää kyseistä kokoelmaobjektia taulukon täyttämiseen.
1234567891011121314151617181920212223242526 | OsapopulaatioUniqueArray ()Dim StrCustomers () merkkijononaDim Col Kuten uusi kokoelmaDim valCell merkkijononaDim i Kuten kokonaislukuDim n kokonaislukuna'laske alueen rivitn = Alue ("A1", Alue ("A1"). Loppu (xlDown)). Rivit.Luku'Täytä väliaikainen kokoelmaVirhe Jatka seuraavaksiSillä i = 0 - nvalCell = Alue ("A1"). Siirtymä (i, 0). ArvoEversti Lisää valCell, valCellSeuraavaksi minäVirhe SelväVirhe GoTo 0'Muuta kokoa nn = Sarake'UudelleenjärjestysReDim StrCustomers (1 - n)'Täytä Array selaamalla kokoelmaaSillä i = 1 sarakkeeseenStrCustomers (i) = Col (i)Seuraavaksi minäDebug.Print Join (StrCustomers (), vbCrLf)End Sub |
Täytä taulukko ainutlaatuisilla arvoilla - toiminto
Yllä oleva esimerkki osoitti menettelyn, joka suorittaa halutut toiminnot. Mutta sen sijaan saatat haluta kannettavan toiminnon tehtävän suorittamiseen:
123456789101112131415161718192021222324 | Toiminto CreateUniqueList (nStart as Long, nEnd as long) kuin VariantDim Col Kuten uusi kokoelmaHimmeä arrTemp() Kuten JousisoitinDim valCell merkkijononaDim i Kuten kokonaisluku'Täytä väliaikainen kokoelmaVirhe Jatka seuraavaksiSillä i = 0 LoppuunvalCell = Alue ("A" & nStart). Siirtymä (i, 0). ArvoEversti Lisää valCell, valCellSeuraavaksi minäVirhe SelväVirhe GoTo 0'Muuta kokoa nnEnd = Sarake'UudelleenjärjestysReDim arrTemp(1 Loppuun)'Täytä väliaikainen ryhmä kiertämällä kokoelma läpiSillä i = 1 sarakkeeseenarrTemp(i) = sarake (i)Seuraavaksi minä'palauttaa väliaikaisen taulukon funktion tulokseenCreateUniqueList = arrTemp()Lopeta toiminto |
Jos haluat käyttää toimintoa, sinun on kutsuttava se alimenettelystä:
123456789 | AliväestöArray ()Dim StrCustomers () merkkijononaDim strCol kokoelmanaDim n yhtä pitkä'laske alueen rivitn = Alue ("A1", Alue ("A1"). Loppu (xlDown)). Rivit.Luku'Suorita toiminto luodaksesi joukon ainutlaatuisia arvojastrCustomers () = CreateUniqueList (1, n)End Sub |