在Excel表格中,我查询Excel表格中的某一列时点击查询后,查出来一条记录,并把此条记录标上标记。等在次查询时,原来查询的记录标记改变,新查询出来的记录显示出来。还有当此列有多条相同的记录时,它能够依次显示出来,这种查询技术怎么做出来的?我在用VB查询时用的是这种方法,查询的很慢,望高手给予指点?下面是我的代码,没有考虑好的算法。
Dim i As Integer '循环次数
Dim findoutflag As Boolean '找到标志
'清除所用的蓝色标记,及"*"
For i = 1 To Grid.Rows - 1
Grid.Row = i
Grid.CellBackColor = &HFFFFFF '白色
Grid.TextMatrix(Grid.Row, 0) = ""
Next i
'缺省为为找到标志
findoutflag = False
For i = 1 To Grid2.Rows - 1
Grid2.Row = i
If LCase(Grid2.TextMatrix(Grid2.Row, 3)) = LCase(Trim(Txt_findpicid.Text)) Then
Grid2.CellBackColor = &H80FF80 '浅蓝色
Grid2.TextMatrix(Grid2.Row, 0) = "*"
Grid2.TopRow = Grid2.Row '将当前行设为首行
findoutflag = True '找到合同号
End If
Next i
If findoutflag = False Then
MsgBox "没有找到您输入的合同号,请重新查询!", vbExclamation + vbInformation, "提示"
end if
Dim i As Integer '循环次数
Dim findoutflag As Boolean '找到标志
'清除所用的蓝色标记,及"*"
For i = 1 To Grid.Rows - 1
Grid.Row = i
Grid.CellBackColor = &HFFFFFF '白色
Grid.TextMatrix(Grid.Row, 0) = ""
Next i
'缺省为为找到标志
findoutflag = False
For i = 1 To Grid2.Rows - 1
Grid2.Row = i
If LCase(Grid2.TextMatrix(Grid2.Row, 3)) = LCase(Trim(Txt_findpicid.Text)) Then
Grid2.CellBackColor = &H80FF80 '浅蓝色
Grid2.TextMatrix(Grid2.Row, 0) = "*"
Grid2.TopRow = Grid2.Row '将当前行设为首行
findoutflag = True '找到合同号
End If
Next i
If findoutflag = False Then
MsgBox "没有找到您输入的合同号,请重新查询!", vbExclamation + vbInformation, "提示"
end if
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货