Rückkehr jedes n-ten Element mit VBA in Microsoft Excel
zurück Wenn 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 werden VBA-Code verwenden, um das Ergebnis zu finden.
Frage: Ich möchte, dass ein Makrocode jeden n-ten Wert aus einer Spalte extrahiert. Ich versuche, Werte von einem Blatt / einer Spalte in ein anderes Blatt / eine andere Spalte zu ziehen. Ich habe versucht, viele Funktionen wie OFFSET zu verwenden, konnte aber die Formel, die das Ergebnis liefern kann, nicht herausfinden.
Nehmen wir ein Beispiel von 100 Werten in Spalte A und wollen jeden 10. Wert in Spalte B herausfinden. Die Stichprobenwerte von Zelle A1 gleich 1 bis Zelle A100 gleich 100; Es folgt die Momentaufnahme der Daten in Spalte A:
Um das Ergebnis zu erhalten, müssen Sie 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
Function INDEXN(InputRange As Range, N As Integer) As Variant ' returns every N-th item from InputRange' --- Comment ' select the desired target range for the function and' --- Comment ' enter as an array function with Ctrl+Shift+Enter.' --- Comment 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 Strg + Umschalt + Ende gleichzeitig gedrückt werden
Um jeden 7. Wert aus dem Bereich A1 zu erhalten: A100; Wir werden das letzte Argument von 10 auf 7 ändern und die Formel lautet \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}
Auf diese Weise können wir jedes n-te Element von einem Blatt zum Hauptblatt zurückgeben.
Die Formel in einem anderen Blatt enthält die Blattreferenz \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}
Fazit: Mit Hilfe der oben genannten 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 Ihren Freunden auf Facebook mit. Und Sie können uns auch auf Twitter und Facebook folgen. Wir würden gerne von Ihnen hören, uns mitteilen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]