在Excel VBA中调用用户窗体并继续取决于哪个button被点击
我在Excel工作簿中有四个模块,三个button和一个用户窗体,一个进度条。 我想在所有四个模块的运行期间显示一个进度条。
例:
我点击一个button,执行下面的代码,使我的进度栏可见:
Private Sub GWPCClearDataButton_Click() ProgressBar.Show End Sub
在我的用户表单中,我有以下代码:
Private Sub UserForm_Activate() GWPCClearData End Sub
这叫我四个模块之一,迄今为止工作正常。
现在,这里是我卡住的地方。
当然,我想为所有模块使用相同的进度条,但是如何在用户窗体代码块中确定哪个button被点击,然后根据那个调用另一个模块?
例:
Private Sub GWPCClearDataButton_Click() ProgressBar.Show End Sub Private Sub GSEPClearDataButton_Click() ProgressBar.Show End Sub
用户窗体:
Private Sub UserForm_Activate() If "BUTTON_NAME" = "GWPCClearDataButton" Then GWPCClearData ElseIf "BUTTON_NAME" = "GSEPClearDataButton" Then GSEPClearData End if End Sub
我怎么能这样做? 我还没有find一个可能性传递一个参数到我的用户表单将包含button名称。
谢谢你的帮助。
在你的表格中
Sub Start_Form(Called_From as string) 'Process Called_From as needed End Sub
当你打电话给你的表单时,先调用子表格,如下所示
<form_name>.Start_Form "Button Called From" <form_name>.Show
基本上你必须通过variables通过另一个子(可以称为任何东西)在用户窗体中,然后显示窗体
用户表单代码
Dim test Private Sub UserForm_Activate() MsgBox test End Sub Sub start(tt) test = tt End Sub
模块代码
Sub t() UserForm1.start "Hello World!" UserForm1.Show End Sub