Okedoke... 列 A にファイル名を含む Excel スプレッドシートがあります。列 A にリストされているファイル名は、1 つまたは複数のソース ディレクトリ内の 1 つまたは複数のテキスト ファイルに表示されます。
テキスト ファイルを再帰的に検索し、列 A で指定されたファイル名を含むファイルのパスを列 B に返すには、Excel が必要です。複数のファイルが列 C に移動する場合など。
Excelシートは
__________________________________
__|______A___________|______B_____|
1 | filename.avi | |
2 | another_file.flv | |
検索するテキスト ファイルは C:\WebDocs\ の下の複数のディレクトリにあり、返される必要があるこのページのように非常に短い DokuWiki ページです。
===== Problem Description =====
Reopen a closed bank reconciliation.
===== Solution =====
Demonstration of the tool box routine that allows reposting of the bank rec.
{{videos:bank_rec_reopen1006031511.flv|}}
===== Additional Information -cm =====
You may have noticed that in the video there is a number to the right of the bank account number. In this case it was a 0. That indicates department 0 which is all departments. You get the department 0 if you have all departments combined using the option in the bank set up called "One Bank for All Departments". If this setting is not checked then when you create your starting bank rec for each department you will get a 1 to the right of the bank rec for department 1 and so on. You should normally only have a 0, or have numbers 1 or greater. If you have both, then the method was changed after the initial bank rec was made. You just have to be aware of this as you move forward. As always backup before you make any changes.
ビデオを含まないが、検索対象のディレクトリに含まれる非常に長いページが他にもいくつかあります。形式は同じで、プレーン テキストです。==== は見出しのプレース ホルダーであり、他のページ/サイトへのリンクを含めることができます。
必要なことを実行する既存の VBA スクリプトを見つけました。再帰せず、パスだけが必要な場合、たとえば日付/時刻スタンプなど、あまりにも多くの情報を返します。
Private Sub CommandButton1_Click()
Dim sh As Worksheet, rng As Range, lr As Long, fPath As String
Set sh = Sheets(1) 'Change to actual
lstRw = sh.Cells.Find(What:="*", After:=sh.Range("A1"), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
Set rng = sh.Range("A2:A" & lstRw)
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
fPath = .SelectedItems(1)
End With
If Right(fPath, 1) <> "\" Then
fPath = fPath & "\"
End If
fwb = Dir(fPath & "*.*")
x = 2
Do While fwb <> ""
For Each c In rng
If InStr(LCase(fwb), LCase(c.Value)) > 0 Then
Worksheets("Sheet2").Range("C" & x) = fwb
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(fwb)
Worksheets("Sheet2").Range("D" & x) = f.DateLastModified
Worksheets("Sheet2").Range("B" & x) = f.Path
Worksheets("sheet2").Range("A" & x) = c.Value
Columns("A:D").AutoFit
Set fs = Nothing
Set f = Nothing
x = x + 1
End If
Next
fwb = Dir
Loop
Set sh = Nothing
Set rng = Nothing
Sheets(2).Activate
End Sub
これまでの変更の試みは、通常、スクリプトが壊れているため、ここで助けを求めるようになりました.
ありがとう、
サイモン