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 回答