Я не получаю нужное значение, используя сообщение об ошибке. - PullRequest
0 голосов
/ 10 декабря 2018

Я пишу код VBA для перемещения файлов из одной точки общего ресурса в другой.После перемещения файла я хочу показать «File Moved» в следующем столбце к фактическому имени файла.Пожалуйста, найдите мой код ниже.

    currRow = 11
On Error Resume Next
For currRow = currRow To LastRow

    Filename = ActiveSheet.Range("A" & currRow).Value
    From_Path = "blabla"
    To_Path = "blabla"
    Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.MoveFile From_Path & Filename, To_Path & Filename
        ActiveSheet.Range("B" & currRow) = "File Moved"
        ThisWorkbook.Save
    Next currRow

MsgBox "Files moved"

Но проблема в том, что я получаю «File Moved» для файлов, которые не были перемещены из-за какой-то ошибки.

Благодарим Вас за помощь.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете сделать что-то вроде этого.Лучше ограничить On Error Resume Next, чтобы вы не игнорировали «неожиданные» ошибки в остальной части кода:

Dim msg
From_Path = "blabla"
To_Path = "blabla"
Set FSO = CreateObject("Scripting.FileSystemObject")

For currRow = currRow To LastRow

    Filename = ActiveSheet.Range("A" & currRow).Value
    On Error Resume Next        
    FSO.MoveFile From_Path & Filename, To_Path & Filename
    If Err.Number<>0 Then
        msg = "Error: " & Err.Description
    Else
        msg = "File moved"
    End If
    On Error Goto 0 'limit scope for ignoring errors...     
    ActiveSheet.Range("B" & currRow) = msg
    ThisWorkbook.Save
Next currRow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...