在 Excel VBA 中调用用户表单并根据单击的按钮继续
Calling a userform in Excel VBA and continue depending on which button was clicked
我的 Excel 工作簿中有四个模块、三个按钮和一个用户窗体、一个进度条。我想在所有四个模块的运行期间显示一个进度条。
示例:
我点击了一个执行以下代码并使我的进度条可见的按钮:
Private Sub GWPCClearDataButton_Click()
ProgressBar.Show
End Sub
在我的用户表单中,我有以下代码:
Private Sub UserForm_Activate()
GWPCClearData
End Sub
这调用了我的四个模块之一,目前运行良好。
这就是我卡住的地方。
当然,我想对所有模块使用相同的进度条,但是如何在用户窗体代码块中确定单击了哪个按钮,然后根据该按钮调用另一个模块?
示例:
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
我该怎么做?我还没有找到将包含按钮名称的参数传递给我的用户表单的可能性。
感谢您的帮助。
在您的表单中输入
Sub Start_Form(Called_From as string)
'Process Called_From as needed
End Sub
当你调用你的表单时,只需像下面这样先调用子程序
<form_name>.Start_Form "Button Called From"
<form_name>.Show
基本上你必须通过用户表单中的另一个子(可以被称为任何东西)传递变量,然后在
之后显示表单
用户表单代码
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
我的 Excel 工作簿中有四个模块、三个按钮和一个用户窗体、一个进度条。我想在所有四个模块的运行期间显示一个进度条。
示例:
我点击了一个执行以下代码并使我的进度条可见的按钮:
Private Sub GWPCClearDataButton_Click()
ProgressBar.Show
End Sub
在我的用户表单中,我有以下代码:
Private Sub UserForm_Activate()
GWPCClearData
End Sub
这调用了我的四个模块之一,目前运行良好。
这就是我卡住的地方。
当然,我想对所有模块使用相同的进度条,但是如何在用户窗体代码块中确定单击了哪个按钮,然后根据该按钮调用另一个模块?
示例:
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
我该怎么做?我还没有找到将包含按钮名称的参数传递给我的用户表单的可能性。
感谢您的帮助。
在您的表单中输入
Sub Start_Form(Called_From as string)
'Process Called_From as needed
End Sub
当你调用你的表单时,只需像下面这样先调用子程序
<form_name>.Start_Form "Button Called From"
<form_name>.Show
基本上你必须通过用户表单中的另一个子(可以被称为任何东西)传递变量,然后在
之后显示表单用户表单代码
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