2014-03-13 38 views
0

我對我正在研究的一個項目有一個瘋狂的想法,這會讓事情變得更容易,我想知道它是否有可能。我有一系列相鄰的桌子。比如尺寸5x100。每個表格都有按鈕,用於對特定數據段執行操作。每個按鈕將在按下時激活相同的宏,並由宏決定哪個按鈕被按下。按鈕作爲vba類中的對象

我的想法:如果我創建了一個包含所有按鈕和操作的類並且每個表都是該類的實例化,那麼它會不會很光滑?這意味着每個類將具有該特定表中所有按鈕的事件處理程序。這樣就不會有猜測工作來找到數據和哪個按鈕被按下,因爲它們每個都有自己的方法,並且每個按鈕都有一個相關的範圍。非常乾淨和功能。

這甚至可能嗎?我試圖創建一個類模塊,但在下拉菜單中沒有可用的按鈕對象。有沒有人做過這樣的事情?

在此先感謝!希望帖子不要太長

+1

您可以通過聲明適當類型的類成員並使用With Events來處理按鈕單擊事件:http://spreadsheetpage.com/index.php/site/tip/handle_multiple_userform_buttons_with_one_subroutine/ –

回答

0

你在想這件事。

從您的評論按下我想你正在使用Form Control秒(而不是ActiveX Control的)時,每個按鈕會激活相同的宏。

鑑於這種情況,在您共同宏中使用

ButtonName = Application.Caller 

。這會給你叫你的宏的按鈕的名稱。