if you want to test with a blank worksheet
Sub timerCompare()
Dim vdata
Dim rData As Range
Dim n As Long
Dim dTimer As Double
Dim vMatch
' setup
Set rData = Range("B1:B15000")
rData.Value = ["test"&ROW(1:15000)]
vdata = rData.Value2
' array version
dTimer = Timer
For n = 1 To 15000
vMatch = Application.WorksheetFunction.Match(vdata(n, 1), vdata, 0)
Next n
Debug.Print "Array version took: " & Timer - dTimer & " seconds"
' range version
dTimer = Timer
For n = 1 To 15000
vMatch = Application.WorksheetFunction.Match(rData(n), rData, 0)
Next n
Debug.Print "Range version took: " & Timer - dTimer & " seconds"
End Sub
Bookmarks