我确定这个问题被问到,但我找不到适用于我的情况的解决方案。我有一个包含宏指令的文本文件,用于在输入的每条记录中输入时间日期。我已经通过VB“视图代码”视图将代码粘贴到Excel文件中,并将其保存为我想要的文件名。在多个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)。然后转到开发人员 - >加载项并选中该框以启用它。如果你想修改宏本身来打开多个文件,你可能想编辑你的问题来包含代码。 – Comintern
我无法使用你的指导,在Excel 2013中显然不支持xlam。 –