【问题标题】:VBA to Move Files From Directory Based on Filename LengthVBA根据文件名长度从目录中移动文件
【发布时间】:2025-11-30 10:50:01
【问题描述】:

我们最近将超过 100,000 个 .tif 文件导入到我们共享驱动器上的一个目录中。所有这些文件应该具有相同的命名约定:0123456789.tif(“10 位数字后跟扩展名 .tif”)。大多数人会这样做,但少数人不会。有些大于 14 个字符(文件名 10 个 + 扩展名 4 个),或者小于 14 个字符。

有没有办法基本说:

"如果在目录 x 和长度(文件名) 14 个字符,则移动到目录 y"

(其中目录 y 只是其他文件夹)?

非常感谢。

【问题讨论】:

标签: vba directory


【解决方案1】:

您需要使用Dir() 函数列出所有文件,并使用Name 运算符移动文件

这样的东西应该可以工作

Dim srcDir as String,dstDir as String,f as String
srcDir="C:\"
dstDir="D:\"
f=Dir(srcDir)
Do While f<>""
  If Len(f)<>14 Then Name srcDir & "\" & f As dstDir & "\" & f
  f=Dir()
Loop

【讨论】:

  • 你明白了,这太完美了。谢谢