Geben Sie jedes n-te Element mit VBA in Microsoft Excel zurück

Anonim

Falls Sie sich fragen, wie jemand jedes n-te Element in einer Spalte finden kann. In diesem Artikel erfahren Sie, wie Sie jedes n-te Element aus einer Liste zurückgeben. Wir verwenden VBA-Code, um das Ergebnis zu finden.

Frage: Ich möchte, dass ein Makrocode jeden n-ten Wert aus einer Spalte extrahiert. Ich versuche, Werte aus einem Blatt / einer Spalte in ein anderes Blatt / eine andere Spalte zu ziehen. Ich habe versucht, viele Funktionen wie OFFSET zu verwenden, konnte aber nicht die Formel herausfinden, die das Ergebnis liefern kann.

Nehmen wir ein Beispiel von 100 Werten in Spalte A & wir wollen alle 10 . herausfindenNS Wert in Spalte B

Die Abtastwerte beginnend von Zelle A1 gleich 1 bis Zelle A100 gleich 100; Im Folgenden sehen Sie die Momentaufnahme der Daten in Spalte A:

Um ein Ergebnis zu erhalten, müssen wir die folgenden Schritte ausführen, um den VB-Editor zu starten

  • Klicken Sie auf die Registerkarte Entwickler
  • Wählen Sie in der Gruppe Code die Option Visual Basic . aus

  • Kopieren Sie den folgenden Code in das Standardmodul
 Funktion INDEXN(InputRange As Range, N As Integer) As Variant ' gibt jedes N-te Element aus InputRange zurück' --- Comment ' den gewünschten Zielbereich für die Funktion auswählen und ' --- Comment ' als Array-Funktion mit Strg eingeben +Umschalt+Eingabe.' --- Kommentar 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 If i Mod N = 0 Then iCount = iCount + 1 On Error Resume Next ItemList(iCount) = c.Value On Error GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count >= InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose(INDEXN) End If Erase ItemList End Function 

  • Um jedes n-te Element im Bereich B1:B10 zu erhalten, lautet die Formel
  • {=INDEXN($A$1:$A$100, 10)}

Hinweis: Dies ist eine Array-Formel; daher müssen die Tasten Strg + Umschalt + Ende zusammen gedrückt werden

  • Um alle 7 . zu bekommenNS Wert aus Bereich A1:A100; Wir werden das letzte Argument von 10 auf 7 ändern und die Formel wird sein
  • {=INDEXN($A$1:$A$100, 7)}

Auf diese Weise können wir jedes n-te Element von einem Blatt zum Masterblatt zurückgeben.

  • Die Formel in einem anderen Blatt enthält eine Blattreferenz
  • {=INDEXN(Blatt1!$A$1:$A$100, 10)}

Abschluss: Mit Hilfe der obigen benutzerdefinierten Funktion können wir flexibel jedes n-te Element von einem Blatt zum anderen herausfinden.

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie mit Ihren Freunden auf Facebook. Und Sie können uns auch auf Twitter und Facebook folgen. Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site