2016-12-15 1 views
0

私は、ディレクトリ内のすべてのファイルを一覧表示するには、次のコードを使用しています:ファイルの作成日が週番号と一致するディレクトリにvbaリストファイルがあるかどうかを確認します。

Sub Example1() 
Dim objFSO As Object 
Dim objFolder As Object 
Dim objFile As Object 
Dim i As Integer 

'Create an instance of the FileSystemObject 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
'Get the folder object 
Set objFolder = objFSO.GetFolder("G:\STOCK\(3) Promotions\Allocations\" & Range("N7").Value & "\" & Range("B7").Value & "\WK " & Range("H7").Value & "\") 
i = 1 
'loops through each file in the directory and prints their names and path 
For Each objFile In objFolder.Files 
'print file PG 
    Cells(i + 12, 1) = Range("N7").Value 
    'print file Month 
    Cells(i + 12, 5) = Range("H7").Value 

    'print file Year 
    Cells(i + 12, 9) = Range("B7").Value 

    'print file name 
    Cells(i + 12, 13) = objFile.Name 

    'print file path 
    Cells(i + 12, 18) = "=hyperlink(""" & objFile.Path & """)" 

    i = i + 1 
Next objFile 
End Sub 

これはうまく動作します。ファイルを作成した日付がセルの週番号と一致するこのディレクトリのファイルのみを一覧表示するようにこのスクリプトを修正する方法はありますか?

たとえば、セルA1の値が50 - 週50を表す場合、その週番号と一致するように作成されたすべてのファイルがリストされます。

私のフォルダのディレクトリは、以下のファイルを持っていたのであれば:

1.pdf (Created 15/12/2016) 
2.pdf (Created 01/12/2016) 

この日は週の下で50

ください下がるので、その後、私のリストに表示されるファイルのみがファイル1.pdfだろう誰かが私にこれを行う方法を教えてもらえますか?ありがとう

答えて

0

これはあなたが探しているものですか?

For Each objFile In objFolder.Files 
    If Application.WeekNum(objFile.DateCreated) = Range("A1").Value Then 
     Debug.Print objFile.Name 
     ' ... do the job 
    End If 
Next 
+0

これはわかりません。私はこのコードを私のコードにマージしようとしましたが、うまくいきません。このコードが既存のコードとの関連でどのように機能するか教えてください。 –

+0

@ Bing.Wongでは、あなたのループの全身を私のコメント '... do the job'の場所に置きます。それを試しましたか? –

+0

私はこれを行い、エラーを起こさず、何もしませんか?ファイルがリストされていません:/ –

関連する問題