2015-04-15 127 views
0

我確定這個問題被問到,但我找不到適用於我的情況的解決方案。我有一個包含宏指令的文本文件,用於在輸入的每條記錄中輸入時間日期。我已經通過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

+0

如果您只需要可用於打開任何工作簿的宏,請將包含宏的工作簿保存爲默認位置的Excel加載項(.xlam)。然後轉到開發人員 - >加載項並選中該框以啓用它。如果你想修改宏本身來打開多個文件,你可能想編輯你的問題來包含代碼。 – Comintern

+0

我無法使用你的指導,在Excel 2013中顯然不支持xlam。 –

回答

0

我目前工作-PC與老2003的Excel上,當我打開宏,我有宏和「使用宏從所有打開的文件」或列表「使用只從這個文件「切換。因此,只需使用代碼的宏創建一個文件,然後打開其他文件並從另一個文件調用宏,Excel就可以處理這個問題! 對於新版本,我不能嘗試,但我相信這個有用的東西不能被殺死......?