請教簡易更改 大量 excel file 的 vba code ?

excel file 的 vba code 是在每一個 excel file 入面,如果我有幾百個 file 的 vba code 要更改,有 mud 方法可以,當我開啟檔案,就會自動—更改? 或者一次過改晒所有 file?

留名學野

TOP

excel vba 可以開第二個excel file, update,然後close save without confirmation.

via HKEPC Reader for Android

TOP

再開第二個excel file....loop住直到所有excel files update哂。

via HKEPC Reader for Android

TOP

本帖最後由 myricky 於 2019-2-22 16:59 編輯

你要做既野
1)開一個folder (A), 將想改code既file抄晒入去
2)開一個amend folder (B), (將來改完save係呢度)
3)行一個sub, 行file scripting read晒folder (A)所有file名+path去一個sheet1度
4)行另一個sub, 逐個file open, 然後行下面既code去比較(oldcode係被replace既string, newcode係新replace既string), 然後save係folder (B), loop直至行晒sheet1所有file.

成個project最難既step係下面搵old code同replace新code部份, 所以提供左比你, 其他部份其實好易搞. 如果你其他部份都唔知點寫, 你都係算數用返人手改code吧啦.

For j = 1 To myBook.VBProject.VBComponents.Count
For k = 1 To myBook.VBProject.VBComponents(j).CodeModule.CountOfLines
If InStr(myBook.VBProject.VBComponents(j).CodeModule.Lines(k, 1), oldcode) <> 0 Then
myBook.VBProject.VBComponents(j).CodeModule.replaceLine k, Replace(myBook.VBProject.VBComponents(j).CodeModule.Lines(k, 1), oldcode, newcode)
End If
Next k
Next j


順便提一下, 咁樣改code好唔正常, 我當係好個別事件, 理應預計將來唔會再發生. 呢種情況可能因為一D突然轉變, 例如改database / file path轉變之類. 如果預計將來仍然有機會發生, 我建議你將呢類有機會改變既data儲係一個excel或者access file作為一個master file, 每個vba每次run個陣, 有關呢d data唔係打死係code內面, 而係load返master file d料, 咁樣將來如果有呢類data變更, 直接改master file已經得, 唔洗再逐個vba file改(雖然都可用vba 自動改, 但當中有一定風險).

TOP

非常多謝樓上兩位 ching 的教導,我要慢慢搞下先

TOP

回覆 6# P14

https://www.jitbit.com/macro-recorder/

用keyboard mouse recorder 即(automation).

then不斷重複,直到永遠.

TOP