0

イメージ名の大きなバッチを変更する手段として、以下のコードを実行しています。

ただし、ファイル内の画像名が見つからない場合は常にエラーになります (重複、偶発的な削除、または太った指の病気が原因である可能性があります)。

これが発生したときにスクリプトを実行し続ける方法、または原因を強調表示して削除できるようにする方法はありますか (またはその両方)?

前もって感謝します!!そして、元のコードをありがとう、ここから入手しました:)

コードは以下です。

Sub RenameImages()
'
' RenameImages Macro
'
' Keyboard Shortcut: Ctrl+Shift+I
'
Dim Source As Range
Dim OldFile As String
Dim NewFile As String

Set Source = Cells(1, 1).CurrentRegion

For Row = 1 To Source.Rows.Count
    OldFile = ActiveSheet.Cells(Row, 1)
    NewFile = ActiveSheet.Cells(Row, 2)

    ' rename files
    Name OldFile As NewFile

Next
End Sub
4

2 に答える 2

1

これを処理するには複数の方法があります。次のように FileExists() 関数を使用できます。

Dim fso As Object
Dim MyPath As String

Set fso = CreateObject("Scripting.FileSystemObject")

MyPath = "C:\myFile.txt"

If fso.FileExists(MyPath) = False Then
    MsgBox MyPath & " doesn't exist"
Else
    'Rename your file
End If

これを処理する別の方法は、ErrorHandler を使用することです。

Sub RenameImages()
On Error Goto ErrorHandling
    '
    ' RenameImages Macro
    '
    ' Keyboard Shortcut: Ctrl+Shift+I
    '
    Dim Source As Range
    Dim OldFile As String
    Dim NewFile As String

    Set Source = Cells(1, 1).CurrentRegion

    For Row = 1 To Source.Rows.Count
        OldFile = ActiveSheet.Cells(Row, 1)
        NewFile = ActiveSheet.Cells(Row, 2)

        ' rename files
        Name OldFile As NewFile
    Next
Exit Sub

ErrorHandling:
    Debug.Print "File doesn't exist: " & OldFile
    Resume Next
End Sub
于 2013-04-26T14:17:19.010 に答える
0

行の前に、FOR Row = 1...On error resume nextがうまくいくはずです。
の後の行で、NextこれをオフにしますOn error goto 0

于 2013-04-26T14:16:30.603 に答える