Вот еще один способ, поэтому вам не нужно удалять дубликаты позже, используя Scripting Dictionary
(вам нужно проверить Microsoft Scripting Runtime
в библиотеках, чтобы это работало)
Sub arytest()
Dim ary()
Dim note2() 'unsued
Dim lastrow As Long
Dim i As Long
Dim k As Long
Dim eleAry, x 'unused
Dim DictDuplicates As Scripting.Dictionary
Set DictDuplicates = New Scripting.Dictionary
'Number of rows in my data file
lastrow = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row
'The maximum length of my array
ReDim ary(1 To lastrow)
k = 1
For i = 1 To lastrow
' Criterias that needs to be fullfilled
If Cells(i, 2) Like "*Note 2*" _
And Cells(i, 1) Like "Actuals" _
And Cells(i, 4) Like "Digitale Brugere" Then
If Not DictDuplicates.Exists(Cells(i, 3).Value) Then 'check if the value is already on the array
ary(k) = Cells(i, 3)
DictDuplicates.Add Cells(i, 3).Value, i 'if it does not exists, add it to the dictionary
End If
k = k + 1
End If
Next i
End Sub
IВы также видели некоторые переменные, неиспользованные в вашем коде, или, по крайней мере, то, что вы опубликовали.
PS: при использовании оператора Like
вы должны использовать подстановочные знаки *
или ?
, без нихкак если бы вы использовали оператор =
.