1

Excelスプレッドシートで見つかった基準に基づいて名前を変更しようとしているPDFファイルがたくさんあります。スプレッドシートには、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

ありがとう。

4

1 に答える 1

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

于 2013-03-19T21:36:33.143 に答える