CopyFiles с использованием столбцов электронной таблицы для источника и назначения
У меня есть электронная таблица со столбцом "D" со списком путей к файлам, и в этом столбце содержится около 2500 файлов. В столбце "E" у меня есть список такого же размера с новым путем к файлу назначения. Я хочу скопировать все файлы в столбце D в места в столбце E. Я знаю, что это возможно с помощью макроса Python / Basic в LibreOffice, но я не могу понять, что это правильно.
Это код VBA, который я нашел при поиске, но, к сожалению, он не работает с LibreOffice Calc.
Sub Copy_Files()
Dim cell As Range
For Each cell In Range("D1", Range("D" & Rows.Count).End(xlUp))
FileCopy Source:=cell.Value, Destination:=cell.Offset(, 1).Value
Next cell
End Sub
Я не знаю Python, но если бы кто-то поставил меня на правильный путь, я мог бы решить это.
1 ответ
Для этой простой операции вам не нужен макрос.
Запишите формулу в ячейку F1
="cp" & D1 & "" & E1
Умножьте эту ячейку до конца списка файлов
Теперь у вас есть около 2500 команд копирования файлов.
Скопируйте их в буфер обмена (Ctrl+C), откройте терминал (Ctrl+Alt+T) и вставьте туда все эти команды (Ctrl+Shift+V).
Через несколько секунд (или несколько минут) работа будет выполнена
Я проверил следующее, и это сработало:
Sub Copy_Files()
Dim cell As Range
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
For Each cell In Range("D1", Range("D" & Rows.Count).End(xlUp))
fs.CopyFile cell.Value, cell.Offset(0, 1).Value
Next cell
End Sub
Я считаю, что вам просто нужно убедиться, что путь назначения также содержит имя файла. Также необходимо включить ссылку "Среда выполнения сценариев Microsoft" ("C:\windows\system32\scrrun.dll")