Retour chaque n-ième élément en utilisant VBA dans Microsoft Excel
Si vous vous demandez comment quelqu’un peut trouver chaque nième élément d’une colonne. Dans cet article, nous allons apprendre à renvoyer chaque n-ième élément d’une liste. Nous utiliserons le code VBA pour trouver le résultat.
Question: Je souhaite qu’un code de macro extrait chaque nième valeur d’une colonne. J’essaye d’extraire des valeurs d’une feuille / colonne dans une autre feuille / colonne. J’ai essayé d’utiliser de nombreuses fonctions comme OFFSET mais je n’ai pas réussi à comprendre la formule qui peut donner le résultat.
Prenons un exemple de 100 valeurs dans la colonne A & nous voulons trouver chaque 10 ^ ème ^ valeur dans la colonne B Les valeurs d’échantillon à partir de la cellule A1 égale à 1 à la cellule A100 égale à 100; Voici un instantané des données de la colonne A:
Pour obtenir le résultat, nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic
-
Copiez le code ci-dessous dans le module standard
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
Pour obtenir chaque nième élément de la plage B1: B10, la formule est \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Remarque: il s’agit d’une formule matricielle; par conséquent, les touches Ctrl + Maj + Fin doivent être pressées ensemble
Pour obtenir toutes les 7 ^ e ^ valeurs de la plage A1: A100; nous changerons le dernier argument de 10 à 7 & la formule sera \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}
De cette façon, nous pouvons renvoyer chaque n-ième élément d’une feuille à la feuille principale.
La formule dans une autre feuille contiendra la référence de feuille \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}
Conclusion: Avec l’aide de la fonction définie par l’utilisateur ci-dessus, nous pouvons avoir la flexibilité de trouver chaque nième élément d’une feuille à l’autre.
Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez également nous suivre sur Twitter et Facebook. Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]