Foxtable(狐表)用户栏目专家坐堂 → [求助]如何找出文档包括的字符串


  共有5240人关注过本帖树形打印复制链接

主题:[求助]如何找出文档包括的字符串

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/30 16:40:00 [只看该作者]

Dim app As New MSWord.Application
try
    Dim dlg As New FolderBrowserDialog
    If dlg.ShowDialog = DialogResult.Ok Then
        MessageBox.Show("需要检索的文档目录是:" & dlg.SelectedPath,"提示")
    End If
    Dim s As String = ""
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        If file.ToLower.EndsWith(".doc") Then
            Dim doc = app.Documents.Open(file)
            Dim gjz As String = Tables("说明书检索").Current("说明书关键字")
            If app.ActiveWindow.Selection.Find.Execute(gjz) = False  Then
                Doc.close
               
            Else
                s = s & IIF(s>"", chr(13), "") & file
            End If
        End If
    Next
    If s > "" Then
        MessageBox.Show("共计找到包含关键字的文档有" & s.Split(chr(13)).Length & "个,目录如下:" & vbcrlf & s,"关键字文档查找",MessageBoxButtons.OK,MessageBoxIcon.None)
    Else
        MessageBox.Show("没有找到包含关键字的文档","关键字文档查找",MessageBoxButtons.OK,MessageBoxIcon.None)
    End If
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
End try

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/6/30 17:05:00 [只看该作者]

你太厉害了,不是一般的厉害。我还想怎么把这几个string放到一个集合里面去,然后统计这个集合的数量。你直接统计回车就ok了。

问题

1.现在只能输入一个关键字,如果属于多个关键字就没法识别了-----这个该怎么改?

2.找到包含关键字的文档,却只找出第一个匹配的关键字,其它的没找出。希望在文档中只要出现关键字的地方都全部自动选中。

3.如果找不到关键字的文档,会自动打开一个wps。不希望打开wps。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/30 18:09:00 [只看该作者]

 mark word高亮查找

 

Dim app As New MSWord.Application
try
    Dim dlg As New FolderBrowserDialog
    If dlg.ShowDialog = DialogResult.Ok Then
        MessageBox.Show("需要检索的文档目录是:" & dlg.SelectedPath,"提示")
    End If
    Dim s As String = ""
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        If file.ToLower.EndsWith(".doc") Then
            Dim doc = app.Documents.Open(file)
            Dim gjzs As String = "Test|Abcdefg|test"
            Dim flag As Boolean = False
            For Each gjz As String In gjzs.split("|")
                app.ActiveWindow.Selection.WholeStory
                With app.ActiveWindow.Selection.Find
                    .HitHighlight(gjz, RGB(255, 255, 0), , , , , , , True)
                End With
                If app.ActiveWindow.Selection.Find.Execute Then flag = True
            Next
            If flag = False  Then
                Doc.close
            Else
                s = s & IIF(s>"", chr(13), "") & file
            End If
        End If
    Next
    If s > "" Then
        MessageBox.Show("共计找到包含关键字的文档有" & s.Split(chr(13)).Length & "个,目录如下:" & vbcrlf & s,"关键字文档查找",MessageBoxButtons.OK,MessageBoxIcon.None)
        app.Visible = True
    Else
        MessageBox.Show("没有找到包含关键字的文档","关键字文档查找",MessageBoxButtons.OK,MessageBoxIcon.None)
        app.quit
    End If
   
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
End try


 回到顶部
帅哥哟,离线,有人找我吗?
狐作非为
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2015/6/30 21:58:00 [只看该作者]

厉害啊

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/1 16:32:00 [只看该作者]

Dim gjzs As String = "Test|Abcdefg|test"---这是你改的

Dim gjz As String = Tables("说明书检索").Current("说明书关键字")-----这是我原来的

我本来是想在文本框里面输入关键字,比如abc,123,百度,然后这个文本框绑定到说明书检索表的说明书关键字列。

目的是希望能把所有出现关键字的地方都标注出来。

Dim gjzs As String = "Test|Abcdefg|test"---这个我把文本框输入abc|123|百度这样可以的,但是只能找到最后一个的搜索结果,比如只找到了百度,而没有找到abc和123.

请问这个该怎么处理?

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/1 16:38:00 [只看该作者]

 不可能,测试没问题。

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/1 17:32:00 [只看该作者]

以下是引用大红袍在2015/7/1 16:38:00的发言:
 不可能,测试没问题。

试了好几遍,只指标出最后的关键字。

Dim gjzs As String = Tables("说明书检索").Current("说明书关键字")


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/1 17:45:00 [只看该作者]

不可能,请直接用13楼代码。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/1 17:51:00 [只看该作者]

 再测试了n次,都正常。

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/2 17:03:00 [只看该作者]

让我先哭一会。炒股累计起来赔了4W多,4套开发版没有了。

 

你的代码我一句也没改,测试的结果只能查到最后一个关键字。测试肯定是有问题的。

Dim gjzs As String = "技术支持|需求"

大师,我的QQ:441276101,远程连接一下,我能给你演示一下吗?


 回到顶部
总数 24 上一页 1 2 3 下一页