我目前有一个VB6程序,它必须从excel工作表中读取数据并将其吐出到MSFlexGrid中。
下面是读入的Excel工作表数据。数据填入表格左半部分的出现列。
(来源:dipzo.com)
Private Sub GridSort(temp() As String)
fgData.Rows = UBound(temp)
x = 0
Do While x < fgData.Rows
fgData.Row = x
fgData.Col = 0
fgData.Text = temp(x, 0)
fgData.Col = 1
fgData.Text = temp(x, 1)
x = x + 1
Loop
fgData.ColSel = 1
fgData.Sort = flexSortGenericDescending
x = 0
Do While x < fgData.Rows
fgData.Row = x
fgData.Col = 0
temp(x, 0) = fgData.Text
fgData.Col = 1
temp(x, 1) = fgData.Text
x = x + 1
Loop
End Sub
现在这在一定程度上有效。它按出现次数和输出对数据进行排序:
(来源:dipzo.com)
但是,您可以看到它搞砸了第一列的顺序。我希望数据首先按出现次数进行排序,但是对于具有相同出现次数的数据,我希望它们按操作排序。有没有人知道实现这个目标的方法?
答案 0 :(得分:1)
MSFlexGrid通过按列从左到右排序并始终按相同顺序(降序/升序)对多列数据进行排序。因此,您可以交换“出现”和“操作”列来实现您的目标。
Elsewhise,我发现了here一个很好的MSFlexGrid函数集合,还有一个用于多列排序的条目。查找条目“排序多列”。没有测试,但你可以尝试一下。