【发布时间】:2022-01-04 13:05:30
【问题描述】:
我想用 vba wscript.shell 来做,因为复制文件更快,我想根据“E”列中的选择在 excel 单元格中根据路径或文件名复制文件,并使用“msoFileDialogFolderPicker”输出目标文件夹
我有示例代码,但需要更改。
Sub copy()
xDFileDlg As FileDialog
xDPathStr As Variant
sn = Filter(Split(CreateObject("wscript.shell").exec("cmd /c dir C:\copy\*.* /b /s").stdout.readall, vbCrLf), "\")
'For j = 0 To UBound(sn)
'If DateDiff("d", FileDateTime(sn(j)), Date) > 30 Then sn(j) = ""
'Next
sn = Filter(sn, "\")
For j = 0 To UBound(sn)
FileCopy sn(j), "C:\destcopy" & Mid(sn(j), 2)
Next
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = "Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
End Sub
罗伊
【问题讨论】:
-
您请求帮助修改代码,但您没有解释您想要完成的任务。我们是否应该仅根据您的(不工作的)代码和您向我们展示的图片进行推断?从上面的图片中可以使用什么?如何?做什么?您的代码中的哪些内容无法按您的意愿工作,您需要更改\追加?
-
@FaneDuru ,从上面将使用的 excel 图像中,我想使用 vba wscript.shell 根据列 A 中的路径复制文件,并且还基于标记为 E 列中的选择“V”。我发布的示例代码不起作用。并使用“msoFileDialogFolderPicker”输出文件夹。我希望修改或替换 vba 代码。有关信息,我的工作表名称是“master”
-
您的实际代码中要保留哪些内容?您为什么要谈论“vba wscript.shell,因为复制文件更快”,因为您想使用 文件路径,而不是文件夹来提取其文件?
-
@FaneDuru ,如果您想更改实际代码没问题,我可以使用 vba wscript.shell 根据单元格中的引用路径或文件名复制文件吗?
-
@FaneDuru ,因为如果我使用“vba wscript.shell”它会更快,因为复制了数百个文件
标签: arrays vba wscript.shell filecopy