Ritorna ogni n-esimo elemento utilizzando VBA in Microsoft Excel
Nel caso ti stia chiedendo come qualcuno possa trovare ogni ennesimo elemento in una colonna. In questo articolo impareremo come restituire ogni n-esimo articolo da un elenco. Useremo il codice VBA per trovare il risultato .
Domanda: voglio un codice macro per estrarre ogni ennesimo valore da una colonna. Sto cercando di estrarre i valori da un foglio / colonna in un altro foglio / colonna. Ho provato a utilizzare molte funzioni come OFFSET ma non sono riuscito a capire la formula che può dare il risultato.
Facciamo un esempio di 100 valori nella colonna A e vogliamo trovare ogni 10 ^ esimo ^ valore nella colonna B I valori campione a partire dalla cella A1 uguale a 1 fino alla cella A100 uguale a 100; seguente è l’istantanea dei dati nella colonna A:
Per ottenere il risultato, dobbiamo seguire i passaggi seguenti per avviare l’editor VB Fare clic sulla scheda Sviluppatore Dal gruppo Codice, selezionare Visual Basic
-
Copia il codice seguente nel modulo 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
Per ottenere ogni ennesimo elemento nell’intervallo B1: B10, la formula è \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Nota: questa è una formula di matrice; quindi, i tasti Ctrl + Maiusc + Fine devono essere premuti insieme
Per ottenere ogni 7 ^ esimo ^ valore dall’intervallo A1: A100; cambieremo l’ultimo argomento da 10 a 7 e la formula sarà \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}
In questo modo, possiamo restituire ogni n-esimo articolo da un foglio a un foglio principale.
La formula in un altro foglio conterrà il riferimento al foglio \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}
Conclusione: con l’aiuto della funzione definita dall’utente sopra, possiamo avere la flessibilità di scoprire ogni ennesimo elemento da un foglio all’altro.
Se i nostri blog ti sono piaciuti, condividilo con i tuoi amici su Facebook. Puoi anche seguirci su Twitter e Facebook. Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]