`Ok、私は私の質問でより具体的に尋ねられました。処理ファイルFileExistsと2nd FileExistsの場合
- NV_A1_mainx.dxf
- NV_A1_resx.dxf
- NV_B1_mainx.dxf
- NV_B1_motx.dxf
- NV_B1_motlx.dxf
フォルダは、InStrの "mainx"、 "motx"、または "resx"に基づいて各ファイルを処理しているループです。 "motx"タイプのファイルでは、追加のマッチングタイプファイル "motlx"がある場合それがある場合、それは一方通行を処理します。そうでない場合は、2番目の方法を処理します。ファイル名は異なりますが、ファイル名のコンベンションには常に2つのアンダースコア "_"と続けて、検索対象のInStr文字が続きます。
例として上記のファイルを使用して、NV_A1_motx.dxfを処理しようとしたときにフォルダに一致するNV_B1_motlx.dxfがあるかどうかを確認するように文を書きたいと思います。
問題はスクリプトの最後の行です。 "motx"ファイルがフォルダ内に存在するかどうかを確認するには、 "motx"に対してその文を正しく書く方法を教えてください。
Thx ...私の意図をより明確にするための希望。
Set App = CreateObject("Illustrator.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("S:\SOCAL\Section_13\Road DXFs")
Set DXFfile = SourceFolder.Files
Set DXFfolder = FSO.GetFolder(SourceFolder)
Dim FileRef
For Each FileRef In SourceFolder.Files
If Instr(FileRef,"motx") > 0 then
Call Motx(FileRef)
ElseIf Instr(FileRef,"mainx") > 0 then
Call Mainx(FileRef)
ElseIf Instr(FileRef,"resx") > 0 then
Call Resx(FileRef)
Else
Msgbox "File is not being found or some issue with script."
End If
Next
Sub Motx(FileRef)
If ((App.Documents.Count > 0) And (FileExists("S:\SOCAL\Section_13\Road DXFs\SOCAL_B2_motlx.dxf"))) Then
Else
あなたのご意見ありがとうございました。私はエラーをコードに差し込んでいたので、私がしたことは、あなたのコードが一致するファイルを見つけるかどうかを確認するためのコードを基本に取り除くことでした。ようにスクリプトを
NV_B2_motlx.dvxと NV_B2_motx.dvx
テスト:フォルダに私がやっただけの2つのファイルを持っている
Set App = CreateObject("Illustrator.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("S:\SOCAL\Section_13\Road DXFs")
Set DXFfile = SourceFolder.Files
Set DXFfolder = FSO.GetFolder(SourceFolder)
For Each FileRef In SourceFolder.Files
' default property of `FileRef` object is `Path`
If Instr(FileRef.Name, "motx", vbTextCompare) > 0 Then
I f fso.FileExists(fso.BuildPath(fso.GetParentFolderName(objFile.Path), _
Replace(FileRef.Name, "motx", "motlx", 1, -1, vbTextCompare))) Then
'motlx' exists
MsgBox "We have a match!"
Else
'motlx' does not exist
MsgBox "Sorry, no match"
End If
End If
Next
がこれを実行している私は、次のエラーメッセージが表示されました:型が一致しません: '[文字列: "NV_B2_motlx.dxf"]' コード800A000D 9行目のChar 5.
してください[編集]あなたの質問、何の合理的な説明を追加あなたの質問はです。できるだけ詳細を追加してください。現時点では広すぎます:_ ...ファイル名に基づいて_どのように基づいていますか?他の部分の特定の部分文字列ですか?または部分文字列を開始しますか?正規表現ベースの一致?両方のファイルに同じルールが適用されますか?または関連ルール?または独立したルール?またはファイル名のペアのリストがありますか? **等。等** – JosefZ
おそらく最も重要なクエリ:what-if第1タイプの基準に一致するファイルが1つ以上あり、第2タイプの基準に一致するファイルが2つ以上ある(2+)場合は、各2日? ...または第2のカウントに関係なく1回1回ずつ処理しますか? ...または別の注文?そのようなルールを与えてください。 – JosefZ
新しく追加された情報であっても、一言で言及していないので、あなたの問題が何であるか分かりません。あなたの実際の問題は何ですか? –