按键精灵excel联合搜索代码

第一次用按键精灵写程序,实现在多个excel搜索内容,输出正行内容,不过缺点很多,按键精灵提供的函数过少,对excel仅仅提供了读取写入单元格的功能,字符串也没有提供子字符串的判断功能。

Event MainForm.ShowDirFileBtn.Click
 If MainForm.BrowseFolderBox.Path <> "" Then 
    Files = Lib.文件.遍历指定目录下所有文件名(MainForm.BrowseFolderBox.Path)
    For i = 0 To UBound(Files)
        If StrComp(Split(Files(i), ".")(1), "xls") OR StrComp(Split(Files(i), ".")(1), "xlsx") Then 
            MainForm.FileListBox.AddItem MainForm.BrowseFolderBox.Path & "/"& Files(i)
        End If 
    Next
  End If  
End Event
//双击删除所选行
Event MainForm.FileListBox.DblClick
     MainForm.FileListBox.RemoveItem MainForm.FileListBox.ListIndex   
End Event
//搜索内容
Event MainForm.SearchBtn.Click
    If MainForm.SearchTextBox.Text = "" Then 
        MessageBox "搜索内容不能为空"
        Exit Event
    End If
    If MainForm.FileListBox.ListCount = 0 Then 
        MessageBox "没有选中文件"
    End If
    FilesArray = Split(MainForm.FileListBox.List,"|")
    searchText = MainForm.SearchTextBox.Text
    result = ""
    //遍历文件
    For i = 0 To UBound(FilesArray)  
        curFile = FilesArray(i)
        Call Plugin.Office.OpenXls(curFile)
        curFileSearch = Split(curFile,".")(1) & ":"
        pageCnt = 1
        //统计页数
        While Plugin.Office.ReadXls(pageCnt, 1, 1)<> ""
            pageCnt = pageCnt + 1
        Wend
        //搜索页
        For page = 1 to pageCnt-1
            //查找当前页的行数目
            rowCnt = 1
            While Plugin.Office.ReadXls(page, rowCnt, 1) <> ""
                rowCnt = rowCnt + 1
            Wend
            //查找列数
            colCnt = 1
            While Plugin.Office.ReadXls(page, 1, colCnt) <> ""
                colCnt = colCnt + 1
            Wend
            //按行读取
            For row = 1 To rowCnt - 1
                If MainForm.DetailCheckBox.Value = 1 Then 
                    rowText = curFileSearch & page & "页," & row & "行:"
                Else 
                    rowText = ""
                End If
                FindFlag = false
                For col = 1 To colCnt-1
                    cellText = Plugin.Office.ReadXls(page, row, col)
                    rowText = rowText & cellText & " "
                    If StrComp(cellText,searchText)=0 Then 
                        FindFlag = true
                    End If
                Next
                If FindFlag = true Then 
                    result = result & rowText & vbCrLf
                End If
            Next
        Next
        Call Plugin.Office.CloseXls()
    Next
    If result = "" Then 
        MessageBox "没有搜索到匹配选项"
    Else 
        MainForm.ResultBox.Text = result
    End If
End Event

Event MainForm.Load
MainForm.FileListBox.List = ""
MainForm.BrowseFolderBox.Path = ""
MainForm.BrowseFileBox.Path = ""
End Event
Event MainForm.AddFileBtn.Click
  If MainForm.BrowseFileBox.Path <> "" Then 
     MainForm.FileListBox.AddItem MainForm.BrowseFileBox.Path
  End If   
End Event

效果图.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自链接 目录 1.认识NPOI 2.使用NPOI生成xls文件 2.1创建基本内容 2.1.1创建Workboo...
    腿毛裤阅读 10,736评论 1 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,751评论 25 709
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,215评论 6 13
  • 虽然阶层固化是不可争议的事实,但是在《人生七年》之中,的确有一位贫民窟的孩子,通过自己的努力当上了大学的教授,改变...
    莫若剑阅读 392评论 0 0
  • 今天让我们来继续说一说,书中的小主人公安妮是一个怎样的人? 我:我觉得安妮是一个争强好胜的人。跟...
    多多_bc5b阅读 107评论 0 0