gpt4 book ai didi

excel - 从文件资源管理器搜索中提取文件名到 Excel

转载 作者:行者123 更新时间:2023-12-03 21:49:11 25 4
gpt4 key购买 nike

这一直困扰着我,因为我觉得我有几 block 拼图,但我不能把它们放在一起
因此,我的目标是能够在给定位置的所有 .pdf 中搜索文件内容中的关键字或短语,而不是文件名,然后使用搜索结果填充 Excel 电子表格。
在我们开始之前,我知道使用 Acrobat Pro API 很容易做到这一点,但我的公司不会为每个人支付许可证费用,以便这个宏能够正常工作。
Windows 文件资源管理器搜索接受高级查询语法,并将在文件内容中搜索,前提是启用了正确的 ifilter。例如。如果您有一个名为 doc1.docx 的 word 文档,并且文档中的文本为“blahblahblah”,并且您搜索“blah”,则结果将显示 doc1.docx。
据我所知,这不能使用 FileSystemObject 来实现,但是如果有人可以确认任何一种方式真的有用吗?
我有一个简单的代码,它打开一个资源管理器窗口并在给定位置的所有文件的内容中搜索一个字符串。搜索完成后,我有一个资源管理器窗口,其中列出了所有需要的文件。 如何获取此列表并使用这些文件的文件名填充 Excel?

dim eSearch As String
eSearch = "explorer " & Chr$(34) & "search-ms://query=System.Generic.String:" & [search term here] & "&crumb=location:" & [Directory Here] & Chr$(34)
Call Shell (eSearch)

最佳答案

假设位置已编入索引,您可以使用 ADO 直接访问目录(添加对 Microsoft ActiveX Data Objects 2.x 的引用):

Dim cn  As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String

cn.Open "Provider=Search.CollatorDSO;Extended Properties='Application=Windows'"

sql = "SELECT System.ItemNameDisplay, System.ItemPathDisplay FROM SystemIndex WHERE SCOPE='file:C:\look\here' AND System.Kind <> 'folder' AND CONTAINS(System.FileName, '""*.PDF""') AND CONTAINS ('""find this text""')"

rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly

If Not rs.EOF Then
Do While Not rs.EOF
Debug.Print "File: "; rs.Collect(0)
Debug.Print "Path: "; rs.Collect(1)
rs.MoveNext
Loop
End If

关于excel - 从文件资源管理器搜索中提取文件名到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63372774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com