Retourneer elk n-de item met VBA in Microsoft Excel

Anonim

Voor het geval je je afvraagt ​​hoe iemand elk nde item in een kolom kan vinden. In dit artikel zullen we leren hoe je elk n-de item uit een lijst kunt retourneren. We zullen VBA-code gebruiken om het resultaat te vinden.

Vraag: Ik wil dat een macrocode elke n-de waarde uit een kolom haalt. Ik probeer waarden van een blad / kolom naar een ander blad / kolom te trekken. Ik heb geprobeerd veel functies zoals OFFSET te gebruiken, maar ik kon de formule niet vinden die het resultaat kan geven.

Laten we een voorbeeld nemen van 100 waarden in kolom A en we willen er elke 10 achter komene waarde in kolom B

De voorbeeldwaarden vanaf cel A1 gelijk aan 1 tot cel A100 gelijk aan 100; het volgende is de momentopname van gegevens in kolom A:

Om resultaat te krijgen, moeten we de onderstaande stappen volgen om VB-editor te starten

  • Klik op het tabblad Ontwikkelaar
  • Selecteer in de codegroep Visual Basic

  • Kopieer onderstaande code in de standaard module
 Functie INDEXN(InputRange As Range, N As Integer) As Variant ' geeft elk N-de item van InputRange terug' --- Comment ' selecteer het gewenste doelbereik voor de functie en ' --- Comment ' voer in als een arrayfunctie met Ctrl +Shift+Enter.' --- Commentaar Dim ItemList() As Variant, c As Range, i As Long, iCount As Long i = 0 iCount = 0 Redim ItemList(1 To InputRange.Cells.Count \ N) For Each c In InputRange i = i + 1 Als i Mod N = 0 Dan iCount = iCount + 1 Bij fout Volgende itemlijst hervatten (iCount) = c.Waarde bij fout GoTo 0 Einde indien volgende c INDEXN = ItemList Als InputRange.Rows.Count >= InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose(INDEXN) End If Wis ItemList End Function 

  • Om elk n-de item in bereik B1:B10 te krijgen, is de formule:
  • {=INDEXN($A$1:$A$100, 10)}

Opmerking: dit is een matrixformule; daarom moeten de toetsen Ctrl + Shift + End samen worden ingedrukt

  • Om elke 7 . te krijgene waarde uit bereik A1:A100; we zullen het laatste argument veranderen van 10 naar 7 & formule zal zijn
  • {=INDEXN($A$1:$A$100, 7)}

Op deze manier kunnen we elk n-de item van het ene blad naar het hoofdblad retourneren.

  • De formule in een ander blad bevat bladverwijzing
  • {=INDEXN(Blad1!$A$1:$A$100, 10)}

Conclusie: Met behulp van de bovenstaande door de gebruiker gedefinieerde functie kunnen we flexibel zijn om elk n-de item van het ene blad naar het andere te vinden.

Als je onze blogs leuk vond, deel deze dan met je vrienden op Facebook. En je kunt ons ook volgen op Twitter en Facebook. We horen graag van je, laat ons weten hoe we ons werk kunnen verbeteren, aanvullen of vernieuwen en het voor jou beter kunnen maken. Schrijf ons op de e-mailsite