Ricerca di valori unici che utilizzano VBA in Microsoft Excel
In questo articolo creeremo una funzione personalizzata per trovare valori univoci dall’intervallo definito.
I dati grezzi per questo esempio sono costituiti da voci duplicate del nome del paese nell’intervallo A8: A21.
Spiegazione logica
Abbiamo creato una funzione personalizzata “UniqueItem” per estrarre i valori univoci dall’intervallo. Questa funzione accetta due parametri come input.
Il primo parametro è l’intervallo costituito dai dati duplicati e il secondo parametro definisce il numero di indice di un valore univoco nella raccolta univoca.
Questa funzione restituisce il valore univoco dell’intervallo basato sul numero di indice. Il secondo parametro è un parametro facoltativo, se il secondo parametro non è specificato, la funzione restituisce il numero di valore univoco nell’intervallo definito.
Se il valore definito per il secondo parametro è maggiore del numero di valori univoci nell’intervallo, l’ultimo valore univoco viene restituito dalla funzione.
Spiegazione del codice
In caso di errore, riprendi dopo per ogni CellValue in InputRange CUnique.Add CellValue.Value, CStr (CellValue.Value)
[_GoBack] # Next On Error GoTo 0 Il codice precedente viene utilizzato per creare un oggetto di raccolta che conterrà un valore univoco dell’intervallo definito. Le istruzioni “On Error” vengono utilizzate per gestire gli errori, poiché quando il codice tenta di inserire valori duplicati nella raccolta, la raccolta genererà un errore.
Segui sotto per il codice
Option Explicit Function UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Adding unique items to collection from defined range For Each CellValue In InputRange CUnique.Add CellValue.Value, CStr(CellValue.Value) Next On Error GoTo 0 'Getting count of unique item in the collection UCount = CUnique.Count If ItemNo = 0 Then 'Returning count of unique item UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Returning unique value based on item number UniqueItem = CUnique(ItemNo) Else 'Returning last unique value UniqueItem = CUnique(UCount) End If End Function
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]