2015-11-16 22 views
0

我在Excel中有一個用戶窗體,有很多選項可以選擇和輸入值。在用戶表單的代碼中,我有幾個公共變量聲明存儲在用戶窗體中輸入的信息。當用戶輸入用戶表單中的所有內容時,他們點擊'處理'按鈕並執行表單的主要功能(將來自多個不同Excel文件的數據編譯到該表單中)。編譯完所有數據後,我在第一個工作表上有另一個命令按鈕,用於運行編譯數據的彙總報告,該報告放在同一工作簿中的另一個工作表中。此摘要宏的代碼在模塊1中定義,而不是在用戶窗體的代碼中定義,因爲它連接到不同的命令按鈕。看來我在運行這個彙總宏時重置了用戶窗體代碼中設置的所有公共變量,所以沒有任何工作正常。如何避免重置從userform中設置的全局變量以用於其他模塊?

我是否必須以某種方式將此模塊鏈接到用戶窗體才能夠訪問這些公共變量?或者我必須將摘要宏的代碼放入用戶表單的代碼中?如果是這樣的話,我如何從RunSummary_Click()命令按鈕代碼的代碼中的userform代碼中調用Sub?

+0

有多少個變量?也許通過他們作爲論據? – findwindow

+0

您可能試圖在非模態模式下運行表單,以便在編譯數據後保持活動狀態(不要關閉它)。這樣,它可以在執行其他處理時保持活動狀態,例如命令按鈕的操作。 –

+0

如果以上都沒有幫助,可以將表單中常量的值放在隱藏列中,然後在運行子時調用這些值。 –

回答

1

我通過將用戶窗體運行爲非模式(ShowModal = False)並在與用戶窗體鏈接的模塊中聲明瞭公共Dim的興趣,而不是在用戶窗體代碼本身中。感謝大家的幫助。