Отредактировано и проверка измененных путей к файлам
из вашего повествования у вас неправильные индексы столбцов
кроме того, вы можете создать один объект FSO для всех CopyFile
методов
Вы также можете использовать Value2
свойство объекта Range
, чтобы получить его фактическое текстовое содержимое
наконец, вы можете проверить наличие файла Origine
, а не наличие файла Destinazione
, чтобы фактически вызвать CopyFile
для них:
Public Sub CopiaFile()
Dim Origine As String
Dim Destinazione As String
Dim Last_Row As Long, i As Long
Last_Row = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
With CreateObject("Scripting.FileSystemObject") ' instantiate and reference a FSO object
For i = 4 To Last_Row
Origine = Cells(i, 7).Value2 ' column index 7-> column G
Destinazione = Cells(i, 8).Value2 ' column index 8-> column H
If .FileExists(Origine) And (.folderexists(Destinazione) Or .FileExists(Destinazione)) Then
.CopyFile Origine, Destinazione
Else
Cells(i, 9).Value = "file not copied"
End If
Next
End With
End Sub