Returnera varje n: e artikel med VBA i Microsoft Excel

Anonim

Om du undrar hur någon kan hitta var tionde objekt i en kolumn. I den här artikeln kommer vi att lära oss att returnera varje n: e artikel från en lista. Vi kommer att använda VBA -kod för att hitta resultatet.

Fråga: Jag vill att en makrokod ska extrahera vart tionde värde från en kolumn. Jag försöker dra värden från ett ark / kolumn till ett annat blad / kolumn. Jag försökte använda många funktioner som OFFSET men kunde inte räkna ut formeln som kan ge resultatet.

Låt oss ta ett exempel på 100 värden i kolumn A & vi vill ta reda på var tiondeth värde i kolumn B

Provvärdena från cell A1 lika med 1 till cell A100 lika med 100; följande är ögonblicksbilden av data i kolumn A:

För att få resultat måste vi följa stegen nedan för att starta VB -editor

  • Klicka på fliken Utvecklare
  • Välj Visual Basic i kodgruppen

  • Kopiera koden nedan i standardmodulen
 Funktion INDEXN (InputRange As Range, N As Integer) As Variant 'returnerar varje N: e post från InputRange' --- Comment 'välj önskat målintervall för funktionen och' --- Comment 'skriv in som en arrayfunktion med Ctrl +Skift+Enter. ' --- Kommentera Dim ItemList () Som variant, c As Range, i As Long, iCount As Long i = 0 iCount = 0 ReDim ItemList (1 To InputRange.Cells.Count \ N) För varje c In InputRange i = i + 1 Om i Mod N = 0 Då iCount = iCount + 1 Vid fel Återuppta nästa ItemList (iCount) = c.Värde på fel Gå till 0 Avsluta om nästa c INDEXN = ItemList If InputRange.Rows.Count> = InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose (INDEXN) End If Radera ItemList End -funktion 

  • För att få vart tionde objekt i intervall B1: B10 är formeln
  • {= INDEXN ($ A $ 1: $ A $ 100, 10)}

Obs! Detta är en matrisformel; Ctrl + Skift + Avsluta måste därför tryckas ihop

  • Att få var 7: eth värde från intervall A1: A100; vi kommer att ändra det sista argumentet från 10 till 7 & formeln blir
  • {= INDEXN ($ A $ 1: $ A $ 100, 7)}

På detta sätt kan vi returnera varje n: e artikel från ett ark till masterblad.

  • Formeln i det andra bladet innehåller bladreferens
  • {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

Slutsats: Med hjälp av ovanstående användardefinierade funktion kan vi ha flexibilitet att ta reda på var tionde objekt från ett ark till ett annat.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook. Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen