gpt4 book ai didi

Excel VBA循环文件夹并运行宏

转载 作者:行者123 更新时间:2023-12-04 22:08:43 26 4
gpt4 key购买 nike

我尝试了这段代码,似乎它不起作用。谁能告诉我为什么?

Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook

Pathname = ActiveWorkbook.Path & "C:\Macro\"
Filename = Dir(Pathname & "*.xls")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub

Sub DoWork(wb As Workbook)
With wb
Range("A1").Select
ActiveCell.FormulaR1C1 = "Name"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Anil"
Range("A2").Select
End With
End Sub

最佳答案

我发现了 2 个值得关注的领域。第一的,

路径名 = ActiveWorkbook.Path & "C:\Macro\"

这将返回类似于 "C:\Users\[USER NAME]\[FILELOCATION]C:\Macro\"的内容(这是我的输出 C:\Users\Developer\DesktopC:\Macro\")

一个简单的检查方法是放置

消息框路径名



路径名 = ActiveWorkbook.Path & "C:\Macro\"

喜欢

路径名 = ActiveWorkbook.Path & "C:\Macro\"

消息框路径名

并运行代码。这将向您显示主要问题的路径名。如果您计划打开/修改的 excel 文件与 ActiveWorkbook 位于同一目录中,则可以正常工作

路径名 = ActiveWorkbook.Path & "\"

(完成后删除 Msgbox 路径名。)

第二个关注领域是 Do While 循环。您当前将其设置为仅在文件名不等于“”时执行循环。但是,当您进入循环时,您使用 Filename = Dir() 将 Filename 设置为 ""。如果您不打算遍历文件夹,则可以使用单个 IF 语句。如果您确实计划遍历该文件夹,请继续执行 Do While 语句,但最终需要修改 Filename = Dir()。

希望有帮助。

关于Excel VBA循环文件夹并运行宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com