1
ループする必要のあるファイルのフォルダがあります。各ファイルはファイル名に基づいて別々に処理されます。 2番目の "_"の後のファイル名の部分は、どのプロセスに従うかの鍵です。問題は、名前が似ていると私はそれらを区別するための方法を見つけることができませんです。彼らは常にProcess1として登場します。ファイルやコードのファイル名に基づいてファイルを区別する
典型的なフォルダに私が試してみました:
NV_DB62_mainx_.dxf
NV_DB62_mainxsplashroad.dxf
NV_DB62_mainxplashroadONLY.dxf
NV_DB62_mainsplash.dxf
NV_DB63_mainx_dxf
NV_DB63_mainxsplashroad.dxf
NV_DB63_mainxplashroadONLY.dxf
NV_DB63_mainsplash.dxf
Set App = CreateObject("Illustrator.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("S:\NV\Section_13\Road DXFs")
Dim FileRef
For Each FileRef In SourceFolder.Files
If Instr(FileRef,"mainx") > 0 then
Call Process1(FileRef)
ElseIf Instr(FileRef,"mainxsplashroad") > 0 then
Call Process2(FileRef)
ElseIf Instr(FileRef,"mainxsplashroadONLY") > 0 then
Call Process3(FileRef)
ElseIf Instr(FileRef,"mainsplash") > 0 then
Call Process4(FileRef)
Else
Msgbox "File is not being found or some issue with script."
End If
Next
テストの順序を変更します。最長最長、最後は最短です。 –
デバッガはあなたのコードがなぜ機能していないのかを表示します。そして少しの常識があなたにそれを伝えます。 'mainx'を最初にチェックしていて、すべての単一ファイル名に入っているなら、明らかにそのテストに合格します。最も短い名前が最初にテストされるように順序を変更し、次に長い順に、次に3番目に長い順に変更して、最短の名前が最終テストになるまで続けます。 –
また、もしLCase(mid(fileref.name、8)= LCase( "mainx_dxf") ' ' –