【问题标题】:Running a macro on multiple Excel files在多个 Excel 文件上运行宏
【发布时间】:2015-06-21 11:24:55
【问题描述】:

我确定有人问过这个问题,但我找不到适合我情况的解决方案。我有一个文本文件,其中包含在输入的每条记录中输入时间日期的宏指令。我一直在通过 VB“查看代码”视图将代码粘贴到 excel 文件中,并将其保存为我想要的文件名。

问题是我必须修改数百个文件,这需要很长时间。有什么办法可以自动化吗?

我尝试在粘贴代码并保存文件的位置录制宏,但它会保存我录制宏的原始文件的文件名。有没有办法编辑宏以当前文件名保存当前目录下的文件?

我录制了一个宏, 我将此代码粘贴到工作表中:

Private Sub Worksheet_Change(ByVal Target As Range) ' Code goes in the Worksheet specific module Dim rng As Range ' Set Target Range, i.e. Range("A1, B2, C3"), or Range("A1:B3") Set rng = Target.Parent.Range("A:A") ' Only look at single cell changes If Target.Count > 1 Then Exit Sub ' Only look at that range If Intersect(Target, rng) Is Nothing Then Exit Sub ' Action if Condition(s) are met (do your thing here...) With Target .Offset(, 1) = Date .Offset(, 2) = Time End With End Sub 然后我停止宏。结果是这样的:

Sub save() save Macro Sheets("Sheet1").Select ChDir "P:\Inventory\templates\NB (D) Kelso 011" ActiveWorkbook.SaveAs Filename:= _ "P:\Inventory\templates\NB (D) Kelso 011\D101.xlsm", FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End Sub

【问题讨论】:

  • 如果您只需要可用于您打开的任何工作簿的宏,请将包含宏的工作簿作为 Excel 加载项 (.xlam) 保存在默认位置。然后转到 Developer -> Add-ins 并选中该框以启用它。如果您想修改宏本身以打开多个文件,您可能需要编辑您的问题以包含代码。
  • 我无法使用您的指导,Excel 2013 显然不支持 xlam。

标签: windows excel vba powershell


【解决方案1】:

我目前在使用旧版 2003 Excel 的工作 PC 上,当我打开宏时,我有宏列表和“使用所有打开的文件中的宏”或“仅使用这个文件”开关。因此,只需使用您的代码创建一个带有宏的文件,然后打开其他文件并从另一个文件调用宏,Excel 就可以处理这个问题! 对于较新的版本我无法尝试,但我确信这个有用的东西不能被杀死......?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2023-03-10
    • 2017-05-30
    相关资源
    最近更新 更多