在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