VBA - Täytä joukko ainutlaatuisilla arvoilla sarakkeesta

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
wave wave wave wave wave