
Sub ricercaduplicati()
Dim nomiid As Range
Set nomiid = Range("D7:D3695")
Range("nomiid").Cells(1, 1).Select
End Sub |
Function duplicates_collection(vettore As Variant) As Collection
Dim v As Variant, dups As Collection
Set dups = New Collection
On Error Resume Next
For Each v In vettore
dups.Add v, CStr(v)
Next
On Error GoTo 0
Set duplicates_collection = dups
End Function
|
For Each v In vettore
dups.Add Item:=v, Key:=CStr(v)
Next
|
Option Explicit
Function duplicates_collection(vettore As Variant) As Collection
Dim v As Variant, dups As Collection
Set dups = New Collection
For Each v In vettore
dups.Add (v)
Next
Set duplicates_collection = dups
End Function
|
Function duplicates_collection(vettore As Variant) As Collection
Dim itm As Variant, duplicates As Collection
Set duplicates = New Collection
On Error Resume Next
For Each itm In vettore
If WorksheetFunction.CountIf(vettore, itm) > 1 Then duplicates.Add itm, CStr(itm)
Next
On Error GoTo 0
Set duplicates_collection = duplicates
End Function |
Function collection_to_array(ByRef coll As Collection) As Variant
Dim v As Variant, arr() As Variant, i As Integer
ReDim arr(0 To coll.Count - 1)
i = 0
For Each v In coll
arr(i) = v
i = i + 1
Next
collection_to_array = arr()
End Function |
Sub test()
Dim num1 As Long, num2 As Long
num1 = 123
num2 = 456
MsgBox "Valori prima della chiamata alla Sub: num1 = " & num1 & "; num2 = " & num2
test_byref_byval X:=num1, Y:=num2
MsgBox "Valori dopo la chiamata alla Sub: num1 = " & num1 & "; num2 = " & num2
End Sub
Sub test_byref_byval(ByRef X As Long, ByVal Y As Long)
X = 321
Y = 654
End Sub |
set c = duplicates_collection([A1:A20])
for each v in c
msgbox v
next
Function duplicates_collection(vettore As Variant) As Collection
Dim v As Variant, dups As Collection
Set dups = New Collection
On Error Resume Next
For Each v In vettore
dups.Add v, CStr(v)
Next
On Error GoTo 0
Set duplicates_collection = dups
End Function |
Sub Duplicates()
Dim R As Variant, V As Variant, z As Integer, NOdups As New Collection, Dups As New Collection
Set R = [a1:a3659]
Cells(1, 3).CurrentRegion.ClearContents ' Pulisce gli eventuali dati precedenti
On Error Resume Next
For Each V In R
NOdups.Add Item:=V, Key:=CStr(V)
If Err.Number <> 0 Then
Dups.Add Item:=V, Key:=CStr(V)
Err.Number = 0
End If
Next
[c1] = "Duplicati"
z = 2 'Lascia la prima riga alla intestazione
For Each V In Dups
z = z + 1
Cells(z, 3).Value = V
Next
[d1] = "Univoci"
z = 2 'Lascia la prima riga alla intestazione
For Each V In NOdups
z = z + 1
Cells(z, 4).Value = V
Next
[c:c].Sort key1:=[c:c], Header:=xlYes ' Ordiniamo i valori della colonna c
[d:d].Sort key1:=[d:d], Header:=xlYes ' idem ma della colonna d
End Sub
|
