Returnează fiecare al n-lea articol folosind VBA în Microsoft Excel

Anonim

În cazul în care vă întrebați cum poate cineva să găsească fiecare al doilea element dintr-o coloană. În acest articol vom învăța cum să returnăm fiecare al n-lea articol dintr-o listă. Vom folosi codul VBA pentru a găsi rezultatul.

Întrebare: Vreau un cod macro pentru a extrage fiecare a n-a valoare dintr-o coloană. Încerc să trag valori dintr-o foaie / coloană într-o altă foaie / coloană. Am încercat să folosesc multe funcții cum ar fi OFFSET, dar nu am reușit să dau seama de formula care poate da rezultatul.

Să luăm un exemplu de 100 de valori în coloana A și vrem să aflăm la fiecare 10a valoare din coloana B

Valorile eșantionului începând de la celula A1 egală cu 1 până la celula A100 egală cu 100; următorul este instantaneul datelor din coloana A:

Pentru a obține rezultatul, trebuie să urmăm pașii de mai jos pentru a lansa editorul VB

  • Faceți clic pe fila Dezvoltator
  • Din grupul de coduri, selectați Visual Basic

  • Copiați codul de mai jos în modulul standard
 Funcția INDEXN (InputRange As Range, N As Integer) As Variant 'returnează fiecare al N-lea element din InputRange' --- Comment 'selectați intervalul țintă dorit pentru funcție și' --- Comment 'introduceți ca funcție matrice cu Ctrl + Shift + Enter. ' --- Comentariu Dim ItemList () Ca variantă, c Ca interval, i Ca lung, iCount Ca lung i = 0 iCount = 0 ReDim ItemList (1 To InputRange.Cells.Count \ N) Pentru fiecare c In InputRange i = i + 1 Dacă i Mod N = 0 Apoi iCount = iCount + 1 On Error Reîncepeți 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 

  • Pentru a obține fiecare al nouălea element din intervalul B1: B10, formula este
  • {= INDEXN ($ A $ 1: $ A $ 100, 10)}

Notă: aceasta este o formulă matrice; prin urmare, tastele Ctrl + Shift + End trebuie apăsate împreună

  • Pentru a obține la fiecare 7a valoare din intervalul A1: A100; vom schimba ultimul argument de la 10 la 7 și formula va fi
  • {= INDEXN ($ A $ 1: $ A $ 100, 7)}

În acest fel, putem returna fiecare al n-lea articol dintr-o foaie în foaia principală.

  • Formula din altă foaie va conține referința foaiei
  • {= INDEXN (Sheet1! $ A $ 1 $: $ A $ 100, 10)}

Concluzie: Cu ajutorul funcției definite de utilizator de mai sus, putem avea flexibilitate pentru a afla fiecare al n-lea articol de la o foaie la alta.

Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook. Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrieți-ne pe site-ul de e-mail