VBA - Tömb feltöltése egyedi értékekkel az oszlopból

Ez az oktatóanyag megtanítja, hogyan kell tömböt feltölteni egyedi értékekkel a VBA oszlopából.

Töltse fel a tömböt egyedi értékekkel az oszlopból

Az értékek listájának Excel -lapról tömbbe történő felvétele az Excel soraiban való ciklus és a tömb kitöltése.

Tekintsük a következő ügyfelek listáját egy Excel -lapon.

Egy ciklus segítségével betölthetünk egy tömböt a VBA -ban. Azonban egy szabványos hurok végigmegy minden soron, beleértve az ismétlődő sorokat is, és végül ismétlődő értékeket kap a tömbjében.

A megoldás a cellák közötti ciklushoz és a gyűjteményobjektum gyűjtőobjektumként való feltöltéséhez nem engedélyezi az ismétlődéseket. Ezt a gyűjteményobjektumot használhatja a tömb feltöltésére.

1234567891011121314151617181920212223242526 Sub populateUniqueArray ()Dim StrCustomers () karakterlánckéntDim Col As New CollectionDim valCell mint karakterláncDim i As IntegerDim n Mint egész'számolja meg a tartomány soraitn = Tartomány ("A1", Tartomány ("A1"). Vége (xlDown)). Sorok. Szám'Ideiglenes gyűjtemény feltöltéseHiba esetén Folytassa a következőtI = 0 -tól n -igvalCell = Tartomány ("A1"). Eltolás (i, 0). ÉrtékCol.Add valCell, valCellKövetkező iHiba. VilágosGoTo 0 hiba esetén'Átméretezés nn = oszlopszám'Redeclare tömbReDim StrCustomers (1 -től n -ig)'Töltse fel a tömböt a gyűjtemény áttekintésévelI = 1 oszlopszámhozStrCustomers (i) = Col (i)Következő iHibakeresés. Nyomtatási csatlakozás (StrCustomers (), vbCrLf)End Sub

Tömb feltöltése egyedi értékekkel - Funkció

A fenti példa egy olyan eljárást mutatott be, amely végrehajtja a kívánt műveleteket. De ehelyett inkább a hordozható funkciót választja a feladat végrehajtásához:

123456789101112131415161718192021222324 Funkció CreateUniqueList (nStart as Long, nEnd as long) mint VariantDim Col As New CollectionHomályos arrTemp() Mint HúrDim valCell mint karakterláncDim i As Integer'Ideiglenes gyűjtemény feltöltéseHiba esetén Folytassa a következőtAz i = 0 végéigvalCell = Tartomány ("A" & nStart). Eltolás (i, 0). ÉrtékCol.Add valCell, valCellKövetkező iHiba. VilágosGoTo 0 hiba esetén'Átméretezés nnEnd = oszlopszám'Redeclare tömbReDim arrTemp(1 -től a végéig)'Töltse ki az ideiglenes tömböt a gyűjtemény ciklusávalI = 1 oszlopszámhozarrTemp(i) = (i) oszlopKövetkező i'visszaadja az ideiglenes tömböt a függvény eredményéhezCreateUniqueList = arrTemp()Vége funkció

A funkció használatához meg kell hívnia egy alfolyamatból:

123456789 Sub PopulateArray ()Dim StrCustomers () karakterlánckéntDim strCol gyűjteménykéntDim n Olyan hosszú'számolja meg a tartomány soraitn = Tartomány ("A1", Tartomány ("A1"). Vége (xlDown)). Sorok. Szám'futtassa a függvényt egyedi értékek tömbjének létrehozásáhozstrCustomers () = CreateUniqueList (1, n)End Sub

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave