【问题标题】:Excel macro - move file (fix code)Excel 宏 - 移动文件(修复代码)
【发布时间】:2013-10-16 07:33:08
【问题描述】:

我有这个代码:

Sub MoveFiles()
Dim d As String, ext, x
Dim srcPath As String, destPath As String, srcFile As String
srcPath = "C:\test\"
destPath = "C:\test2\"
ext = Array("*.csv", "*.xls")
For Each x In ext
d = Dir(srcPath & x)
    Do While d <> ""
        srcFile = srcPath & d
        FileCopy srcFile, destPath & d
        Kill srcFile
        d = Dir
    Loop
Next
End Sub

但它会删除 srcPath 中的每个文件。我只需要它来删除 activeworkbook.name 而不是每一个。 我想了好一个小时这段代码,但不知道如何让它不循环,仍然做它应该做的事情。

感谢您对此的帮助

【问题讨论】:

  • i only need it to delete activeworkbook.name and not every single one. 如果您正在从中运行代码,如何删除活动工作簿?
  • 因为它已经将它保存到另一个地方。我刚刚指定了名称

标签: file excel move vba


【解决方案1】:

如果你只是想杀死一个特定的文件,那么为什么要使用一个循环来杀死其迭代中的每个文件呢?

如果你想杀死一个特定的文件并且仍然循环,那么你需要添加一个“if”子句 类似:

if srcFile = activewindow.name then
    kill
else
    do nothing
end if

还是我误会了?

【讨论】:

  • 不,这不是要杀死文件。它关于首先将文件移动到指定文件夹,然后从上一个文件夹中删除文件
  • 知道了。它会杀死每个文件,而不是在循环的当前迭代中杀死文件。
  • 我试过你的代码。它将文件复制到目标文件夹,然后从原始路径中删除它。你想杀的是什么?您无法杀死活动工作表,它受到保护,因为它已打开并从中运行代码。
  • 说文件名存储在 R 中,并且在我保存所有文件后,它们不再具有名称 R。我可以在有多个文件的文件夹中单独杀死 R。
猜你喜欢
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多