【发布时间】: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