|
一つのフォルダに1万件のファイルが入っています
それを、一部別フォルダに移動させるマクロを作成中です
移動させるファイルのリストが
シート1にあります
No 商品 ランク
1 AAA --
2 BBB --
3 CCC -A
4 DDD --
5 ABA -C
6 RRR -D
7 EEE -A
など、5000件ほどの移動対象リストがあります
このリストに載っている名前のファイルを別フォルダへ移動させたいのですが、
ファイル名のつけ方がいまいち統一されていません
たとえば、
AAA_--.xls
となっていたり
BBB_.xls
DDD.xls
など、末尾がいまいち統一されていません
今、下記のようなコードを作成してみましたが、
うまくいきません
Dim strFile As String
Dim MyFolder As String
Dim MyFolder2 As String
Dim 商品 As String
Dim RANK As String
Dim FS
Dim Target As String, Target2 As String
Set FS = Application.FileSearch
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
商品 = Cells(i, 2).Value
MyFolder = "D:\フォルダ\"
MyFolder2 = "C:\移動先フォルダ\"
With FS
.LookIn = MyFolder
If Cells(i, 3).Value = "--" Then
’↓ランクが”--”の場合は3パターンのファイル名があります
たとえば、移動させたいファイルの名前が、AAA_ となってるのに、
なぜか、 X=2のパターンでひかかってきてしまいます
For X = 1 To 3
If X = 1 Then
.Filename = 商品 & "_*-.xls"
ElseIf X = 2 Then
.Filename = 商品 & ".xls"
ElseIf X = 3 Then
.Filename = 商品 & "*_.xls"
End If
If .Execute > 0 Then
For U = 1 To 1
Target = .FoundFiles(U)
Target2 = Right(Target, Len(Target) - InStrRev(Target, "\"))
Name Target As MyFolder2 & Target2
Next U
Exit For
End If
Next X
Else
RANK = Right(Cells(i, 3), 1)
.Filename = 商品 & "*" & RANK & ".xls"
If .Execute > 0 Then
For U = 1 To 1
Target = .FoundFiles(U)
Target2 = Right(Target, Len(Target) - InStrRev(Target, "\"))
Name Target As MyFolder2 & Target2
Next U
End If
End If
End With
Next i
どこが、おかしいのか、いまいち分かりません
どうかアドバイスお願いします
|
|