Board logo

標題: 如何用VBA更改 vba modular 的名稱 [打印本頁]

作者: yen956    時間: 2017-2-3 14:06     標題: 如何用VBA更改 vba modular 的名稱

本帖最後由 yen956 於 2017-2-3 14:08 編輯

如何用VBA更改 vba 中 modular 的名稱
例如:
sub test()
...
...
end sub
如何改成
sub test1()
...
...
end sub
作者: PKKO    時間: 2017-2-4 04:27

回復 1# yen956
  1. Function TEST3()
  2. '更改的模組
  3. Set Obj = Application.VBE.ActiveVBProject.VBComponents("Module1")
  4. Row2 = Obj.CodeModule.ProcStart("TEST1", 0)
  5. RowCount = Obj.CodeModule.ProcCounts("TEST1", 0)
  6. Text = Split(Obj.CodeModule.s(Row2, RowCount), vbCrLf)
  7. Randomize
  8. Call Obj.CodeModule.Replace(Row2, "Function TEST2()")
  9.       
  10. End Function
  11. Function TEST1()
  12. '被更改的模組
  13. A = B

  14. End Function
複製代碼

作者: yen956    時間: 2017-2-4 12:40

回復 2# PKKO
謝謝快速回覆, 謝謝,
不過很抱歉!看不慬如何測試,
試著從 test5 開始測試(step by step),
結果到紅色框框那列, 即出現下列訊息, 為何?
ps:原po文標題錯誤, 應改為
『如何用VBA更改 vba 的 macro 名稱』才對
[attach]26530[/attach]
作者: yen956    時間: 2017-2-6 10:00

本帖最後由 yen956 於 2017-2-6 10:01 編輯

回復 3# yen956
大大您們好:
在努力google後, 發現原來是﹝引用項目﹞及﹝設定巨集安全性﹞的問題, 即
1. 設定引用項目: Microsoft Visual Basic For Applications Extensibility 5.3
2. 巨集安全性:勾選信任 Visual Basic
但, 也只會多執行一列, 原先停留在紅色框那列,
現在停留在藍色框框那列, 即會出現這個訊息, Why?
[attach]26538[/attach]
作者: PKKO    時間: 2017-2-6 12:28

本帖最後由 PKKO 於 2017-2-6 12:30 編輯

[attach]26539[/attach]回復 4# yen956

不用引用項目
下載檔案直接開啟VBE畫面執行第一個巨集即可更改第二個巨集的模組名稱

模組不可上鎖

若有上鎖模組,會需要更多CODE
作者: yen956    時間: 2017-2-6 15:34

回復 5# PKKO
果然不必引用!! 且test1()可改為test2()
謝謝用心指正!!謝謝!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)