VB 怎么在EXCEL表格中模糊查找关键字符,显示整行在Listview
我写的代码如下,但搜索出来是精确查找。PrivateSubCommand1_Click()ListView1.ListItems.Clear'清空列表DimjAsInte...
我写的代码如下,但搜索出来是精确查找。
Private Sub Command1_Click()
ListView1.ListItems.Clear '清空列表
Dim j As Integer
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.DisplayAlerts = True
xlApp.Visible = False '设置EXCEL不可见
Set xlBook = xlApp.Workbooks.Open("\\F:\指导书清单.xls") '打开已经存在的EXCEL工件簿文件
Set xlsheet = xlBook.Worksheets(1) 'xlsheet.Activate '激活工作表(1)
On Error Resume Next
Dim litem
Dim i As Variant
For i =1 To 50
If Cells(i, 3).Value = Text1.Text Then ‘不会模糊查找
Set litem = ListView1.ListItems.Add()
litem.Text = xlsheet.Cells(i, 1)
litem.SubItems(1) = xlsheet.Cells(i, 2)
litem.SubItems(2) = xlsheet.Cells(i, 3)
litem.SubItems(3) = xlsheet.Cells(i, 4)
End If
Next i
xlBook.Close (True) '关闭EXCEL工作簿
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
End Sub 展开
Private Sub Command1_Click()
ListView1.ListItems.Clear '清空列表
Dim j As Integer
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.DisplayAlerts = True
xlApp.Visible = False '设置EXCEL不可见
Set xlBook = xlApp.Workbooks.Open("\\F:\指导书清单.xls") '打开已经存在的EXCEL工件簿文件
Set xlsheet = xlBook.Worksheets(1) 'xlsheet.Activate '激活工作表(1)
On Error Resume Next
Dim litem
Dim i As Variant
For i =1 To 50
If Cells(i, 3).Value = Text1.Text Then ‘不会模糊查找
Set litem = ListView1.ListItems.Add()
litem.Text = xlsheet.Cells(i, 1)
litem.SubItems(1) = xlsheet.Cells(i, 2)
litem.SubItems(2) = xlsheet.Cells(i, 3)
litem.SubItems(3) = xlsheet.Cells(i, 4)
End If
Next i
xlBook.Close (True) '关闭EXCEL工作簿
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
End Sub 展开
展开全部
用instr这个函数
把上面不会模糊查找的那行改为:
if instr(Cells(i,3).value,text1.text)>0 then
把上面不会模糊查找的那行改为:
if instr(Cells(i,3).value,text1.text)>0 then
更多追问追答
追问
刚在WIN7上不能正常运行VB,明天去公司在XP系统上试试。
想请再问下,我在TEXT1.TEXT中输入 "7", EXCEL表格中不同的行有721 ,7BB,7AA 三个数据。搜索后是否能将上面提到的3行都显示在Listview?
追答
win7上Vb不能正常运行,什么情况,我的64位win7都可以呢
必须可以啊,你把上面的 for 循环改为0到excel的总行数,就可以了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询