mshflexgrid多列排序

Const ASC As Long = 1 
Const DESC As Long = -1 
Private SortType As Long 

Private Sub Command1_Click() 
SortType = ASC 
Debug.Print Now 
MSHFlexGrid1.Sort = 9 
Debug.Print Now 
End Sub 

Private Sub Command2_Click() 
SortType = DESC 
MSHFlexGrid1.Sort = 9 
End Sub 

Private Sub Form_Load() 
Randomize 
With MSHFlexGrid1 
For i = 1 To .Rows - 1 
.TextMatrix(i, 3) = CStr(i) 
.TextMatrix(i, 1) = Format(Rnd, "0.0") 
Next 
End With 
End Sub 

Private Sub MSHFlexGrid1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer) 
Dim x1 As Double, x2 As Double, n1 As Long, n2 As Long 

x1 = CDbl(MSHFlexGrid1.TextMatrix(Row1, 1)) 
x2 = CDbl(MSHFlexGrid1.TextMatrix(Row2, 1)) 
If x1 < x2 Then 
Cmp = -1 
ElseIf x1 > x2 Then 
Cmp = 1 
Else '第一列相等的情况下,按第三列排序 
n1 = CLng(MSHFlexGrid1.TextMatrix(Row1, 3)) 
n2 = CLng(MSHFlexGrid1.TextMatrix(Row2, 3)) 
If n1 < n2 Then 
Cmp = -1 
ElseIf n1 > n2 Then 
Cmp = 1 
Else 
Cmp = 0 
End If 
End If 

Cmp = Cmp * SortType 
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值