首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优于VBA。搜索工具

优于VBA。搜索工具
EN

Stack Overflow用户
提问于 2018-04-02 15:22:18
回答 1查看 167关注 0票数 1

我是一个使用Excel的初学者,有一些问题。

  1. 我想根据用户输入(文件名)搜索指定的文件夹。我可以让这部分工作起来,但是,我希望它不仅仅是搜索一种格式(.docx),还包括对.pdf和.doc的搜索。

Clarification:

G:\NEWFOLDER\NAMEFOLDER下的文件夹包含扩展名为.doc、.docx和.pdf的文件,我希望搜索整个文件夹并返回到Sheet2上的电子表格。

代码语言:javascript
复制
Dim NAME As String
Dim File_Path As String
    NAME = InputBox(" Enter Your NAME (EX: JOHNP) ")
    File_Path = "G:\NEWFOLDER\NAMEFOLDER" & NAME & ".docx"

    If Dir(File_Path) <> "" Then
        ThisWorkbook.Sheets("Sheet2").Activate
        Range("D5") = ("Checked")
        Range("E5") = NAME
    Else
        MsgBox "NAME Not found"
    End If
End Sub
  1. 如何在其中搜索文档?

Clarification:

上面的代码只告诉我用户输入是否位于编码路径内。我想要做的下一步是在文档中搜索关键字并向电子表格报告。例如,在JOHNP.doc中有一个age列。我要代码用"22“向Sheet2单元报告。

是否可以使用word文档搜索,或者如果JOHNP采用excel格式更好?

EN

回答 1

Stack Overflow用户

发布于 2018-04-02 15:59:54

这将对您有所帮助--这将遍历指定文件夹位置中的文件(如果存在的话),并且只针对.doc.docx.pdf的文件。

至于你的第二个问题-是的,你可以从你的文档中提取这个号码,但是,你需要更具体地知道这个号码在哪里。如果每次都在同一个位置,那么这将相当容易--希望在Table中是这样,那么它就会有一个显式引用(比如ActiveDocument.Tables(1).Cells(1,1)等)。现在,下面的代码将遍历所有文件,当它找到第一个匹配时,它将为您打开单词document (然后退出循环)。

代码语言:javascript
复制
Sub Test()
Dim NAME As String
Dim File_Path As String
Dim StrFile As String

    NAME = InputBox(" Enter Your NAME (EX: JOHNP) ")
    File_Path = "G:\NEWFOLDER\NAMEFOLDER\" & NAME & "\"

    StrFile = Dir(File_Path)

    If Dir(File_Path) <> "" Then
        Do While Len(StrFile) > 0
            If InStr(StrFile, ".doc") > 0 Or _
               InStr(StrFile, ".pdf") > 0 Then
                Debug.Print StrFile
                'ThisWorkbook.Sheets("Sheet2").Range("D5") = ("Checked")
                'ThisWorkbook.Sheets("Sheet2").Range("E5") = NAME

                If InStr(StrFile, ".doc") > 0 Then
                    Set wordapp = CreateObject("word.Application")
                    wordapp.documents.Open File_Path & StrFile
                    wordapp.Visible = True
                    Exit Do
                End If
            End If
            StrFile = Dir
        Loop
    Else
        MsgBox NAME & " Not found"
    End If
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49613953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档