他正在回答你的問題。你問,有沒有辦法找到如果沒有循環排序? 他說不。你的眼睛,我的眼睛可以看到它是否被分類。但是,您如何期望Excel /計算機在不通過集合元素的情況下這樣做?
當數據在數組中時,您需要遍歷其元素。希望很清楚。
所以最好的,我可以說,
一些代碼片段讓你去上這個方向:
Option Explicit
Sub omgArraySort()
Dim inputArray As Variant
Dim outputArray As Variant
Dim upperB as Long
inputArray = Array("9/3/2012 4:57:02 AM","22/3/2012 5:57:02 AM", _
"9/5/2012 8:57:02 AM","9/3/2011 4:57:02 AM")
'-- sorted array
outputArray = sortRange(inputArray)
upperB = UBound(iArray, 1) '-- for 1D array you may also use UBound(iArray)
If (Err.Number <> 0) Then '-- if there's an error, it's erro code is > 0
MsgBox "Dates sorted, not empty"
End If
End Sub
'-- dump into sheet and sort in the sheet and dump back into the array
Function sortRange(ByVal iArray As Variant) As Variant
Dim rngSort as Range
Dim i As Long
Set rngSort = WorkSheets(1).Range("B2")
i = Ubound(iArray,1)
With rngSort.Resize(i)
.Value = WorksheetFunction.Transpose(iArray)
.Sort rngSort, xlDescending, Header:=xlNo
sortRange = .Value
End With
End Function
在對從片碼的業務可以減緩條款處理大量數據時會降低性能。
請注意,當有人在信譽可靠的SO回答(例如Ekkehard的回答)時,您必須注意一下。他們不會因爲沒有正當理由而這樣說。
任何更快的比較方法,可以執行任務我問什麼? pleasse sugest me! –
使用'Worksheetfunction.Small/Large/Rank/Max/Min'可以幫助跳過一些循環。 –
我可以在Juri上獲得一些代碼演示嗎?請 –