我有很多PDF文件,我试图根据excel电子表格中的条件重命名。电子表格列出了ID,姓氏,名字。
| 123456 | Smith | Joe |
我可以打开并从excel中读取,并且可以创建ado连接并获得对我的查询的响应,但是无法找到一种方法来获取包含文件名的记录集的一部分并保存为变量。
我正在使用的代码:(更新为当前代码集)
'On Error Resume Next
LetterDirectory = InputBox("What letter are we scanning?")
DirectoryLocation = "C:\CLNotes\"
LetterDirectory = UCase(LetterDirectory)
SubDirectory = DirectoryLocation & LetterDirectory
FullDirectory = DirectoryLocation & LetterDirectory & "\*.pdf"
'Creating Excel objects
Set xl = CreateObject("Excel.Application")
Set xlBook = xl.Workbooks.Open("c:\CLnotes\dbo_Patient.xlsx")
Set xlSheet = xlBook.Worksheets(LetterDirectory)
xl.Visible = True
'Set Variables
xlRow = 1
totalRows = xl.WorksheetFunction.CountA(xlSheet.Range("A:A"))
oldFilename = 0
For xlRow = 1 to totalRows
LastName = xlSheet.Cells.Item(xlRow, 2).text
FirstName = xlSheet.Cells.Item(xlRow, 3).text
FullName = LastName & " " & Firstname
newFilename = xlSheet.Cells.Item(xlRow, 1).Text
'FullName = "b lorraine"
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")
objConnection.Open ("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';")
objRecordSet.Open ("SELECT System.FileName FROM SYSTEMINDEX WHERE Contains('" & FullName & "')"), objConnection
objRecordSet.MoveFirst
oldFilename = objRecordset.Fields.Item("System.FileName")
Do Until objRecordset.EOF
Wscript.Echo objRecordset.Fields.Item("System.FileName")
objRecordset.MoveNext
Loop
Next
感谢。
答案 0 :(得分:1)
如果
Wscript.Echo objRecordset.Fields.Item("System.FileName")
输出'记录集中包含文件名'(您感兴趣)AND
的部分Set oldFilename = objRecordset.Fields.Item("System.FileName")
是您尝试将[该值]保存为变量'THEN
oldFilename = objRecordset.Fields.Item("System.FileName")
将解决您的问题,因为Set
仅用于分配对象(不是像字符串那样的“普通”数据类型)。
Set var = non-object
导致您的麻烦 - 正如我所假设的 - 被您使用EVIL全局On Error Resume Next
隐藏。