首页 > 解决方案 > 搜索目录中的随机文件列表并根据单元格值重命名文件

问题描述

编辑:包括我的代码。

我对 VBA 还是比较陌生,所以请多多包涵:

我正在尝试编写一个代码,该代码将遍历文件夹并遍历所有文件(文件名将是随机的)并根据特定单元格的值重命名它们,在我的情况下为 C12。举个例子:

如果文件中的 C12 = A,则文件名应为 1,如果文件中的 C12 = B,则文件名应为 2,如果 C = 3,依此类推。

我整理了以下代码:

Let Files = Dir(Path & "\*.xlsx")

Do While Files <> ""
Set X = Workbooks.Open(Path & "\*.xlsx", True, True)
X.Saved = True

If X.Sheets("Sheet1").Range("C12").Value = "VALUE1" Then
   Name Path & File As Path & NAME1
X.Close

ElseIf X.Sheets("Sheet1").Range("C12").Value = "VALUE2" Then
    Name Path & File As Path & NAME2
X.Close
End If

File = Dir()

Loop

按照我的理解,代码应该遍历每个文件(因为File = Dir()),打开它并运行上面的 IF 语句,重命名文件,然后转到目录中的下一个文件并执行相同操作。但是当我运行它时,它每次只打开同一个文件。关于为什么的任何想法?

希望这是有道理的。谢谢!

标签: excelvba

解决方案


找到了解决方案,从一个很好的解释为什么它在这篇文章中不起作用:Excel VBA Dir loop failed when open and close command added within loop

按照 YowE3K 的建议添加了一个额外的子,现在效果很好!


推荐阅读