我有一张excel表,其中的列具有排序值ex.numbers,names。 我想验证使用Vb脚本是否排序值而不是手动检查它。那么vbscript中是否有任何代码或方法或功能可以验证上述内容。
请帮帮我...... 在此先感谢:)
答案 0 :(得分:2)
您可以遍历所有值并检查它们是否已排序:
Dim i as Integer
i = 2
Dim oldValue as Integer
oldValue = MySheet.Cells(1, 1).Value
Dim sorted as Boolean
sorted = True
Do While Not IsEmpty(MySheet.Cells(i, 1)) And sorted
If MySheet.Cells(i, 1).Value < oldValue Then
sorted = False
EndIf
oldValue = MySheet.Cells(i, 1).Value
i = i + 1
Loop
答案 1 :(得分:1)
您可以使用Evaluate复制一个公式,该公式会根据下面的值检查每个值。您必须为要检查的范围之外的单元格构建检查。这只会检查所提供范围的第一列。
Function IsRangeSorted(rRng As Range) As Boolean
Dim lResult As Long
'If the cell just beyond the range is sorted, evaluate will return zero
'If not, evaluate returns 1 but we don't care if that cell is sorted
If rRng.Cells(rRng.Rows.Count + 1, 1).Value >= rRng.Cells(rRng.Rows.Count, 1).Value Then
lResult = 0
Else
lResult = 1
End If
IsRangeSorted = Evaluate("=SUMPRODUCT(--(" & rRng.Columns(1).Address & ">=" & rRng.Columns(1).Offset(1).Address & "))") = lResult
End Function