我有一个电子表格,其中有一列"D",其中包含文件路径列表,此列中大约有 2500 个文件。在"E"列中,我有一个与新目标文件路径大小相同的列表。我想将 D 列中的所有文件复制到 E 列中的位置。我知道在LibreOffice中使用Python/Basic宏是可能的,但我似乎不能正确理解它。
这是我在搜索时找到的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,但如果有人让我走上正确的轨道,我可以解决它。
这个简单的操作不需要宏。
在单元格 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")