標題:
請教一個問題:VBA寫在工作表1和Module1兩者有甚麼差異?
[打印本頁]
作者:
jsc0518
時間:
2017-2-23 20:51
標題:
請教一個問題:VBA寫在工作表1和Module1兩者有甚麼差異?
請教一個問題:VBA寫在工作表1和Module1兩者有甚麼差異?
我還在試著學習一些非常基本的VBA
我想了解一下,VBA寫在工作表1和Module1兩者有甚麼差異?
是不是VBA寫在工作表1時,VBA僅能在該工作表1執行
是不是VBA寫在Module1時,VBA可以在任一個工作表執行
再麻煩各位先進幫我解惑!
[attach]26711[/attach]
作者:
Hsieh
時間:
2017-2-24 10:25
回復
1#
jsc0518
一般模組(Module1)與工作表模組(工作表1)或是活頁簿模組(thisworkbook)
基本上並無使用上的限制,也就是說程序的呼叫都是可用的。
只是程序依照模組分類存放,有利於集合式的運用
其間差異較大的部分是
1.若程序要供給整個application使用,即公共程序部分應該撰寫在一般模組內
2.物件指定的差異,當一般模組內要取用物件時,必須指明該物件所在之工作表名稱
舉例說明:要取用工作表1的A1儲存格時
在工作表1模組內只需以Range("A1")表示,即可
在一般模組內則應該以Sheets("工作表1").Range("A1")表示(若跨檔案更必須指明活頁簿名稱)
3.通常一般模組內未指定工作表名稱,則取用當前作用之工作表。(即為ActiveSheet)
4.公用程序撰寫於工作表模組,會產生呼叫調用的困難。(尤其是撰寫要運用到工作表的公式函數程序,必須寫在一般模組內)
以上大概是最基本的模組概念,其他差異你可由撰寫經驗中慢慢理解
作者:
Kubi
時間:
2017-2-24 11:00
回復
1#
jsc0518
另外再補述個人淺見。
通常工作表模組是用在事件程序上較多,列如:
1.Worksheet_SelectionChange 事件程序
2.Worksheet_Change 事件程序
3.Worksheet_Activate 事件程序
4.Worksheet_BeforeDoubleClick 事件程序
5.Worksheet_BeforeRightClick 事件程序
....等
若有需要的話,也可在事件程序內呼叫一般模組內的副程式來做運用。
作者:
jsc0518
時間:
2017-2-24 12:12
回復
2#
Hsieh
感謝您的詳細教導,我會好好再日後看看兩者的差異,若有問題再與您請教!
作者:
jsc0518
時間:
2017-2-24 12:13
回復
3#
Kubi
謝謝您所提供的資訊,我會好好學習!
作者:
Joforn
時間:
2017-2-27 22:03
一个是模块,一个是类模块,模块共用内存,类模块具有私有内存。
作者:
jsc0518
時間:
2017-2-28 14:59
回復
6#
Joforn
了解,謝謝指導!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)