彼はあなたの質問に答えています。あなたは尋ねました、ループなしでソートされているかどうかを見つける方法はありますか?
彼はノーと言った。あなたの目、私の目はそれが分類されているかどうかを見ることができます。しかし、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の誰かが答えるとき(例えば、エッケハルトの答え)、あなたは注意を払わなければならないことを知っておいてください。彼らは適切な理由もなくそれを言いません。