我的Excel工作簿中有四个模块,三个按钮和一个用户窗体,一个进度条。我想在所有四个模块的运行时间内显示一个进度条。
示例:
我单击一个按钮,该按钮执行以下代码并使我的进度条可见:
Private Sub GWPCClearDataButton_Click()
ProgressBar.Show
End Sub
在我的userform中,我有以下代码:
Private Sub UserForm_Activate()
GWPCClearData
End Sub
这称我的四个模块之一到目前为止工作正常。
现在我就被困住了。
当然,我想对所有模块使用相同的进度条但是如何在userform代码块中确定单击了哪个按钮,然后根据该调用另一个模块?
示例:
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
我怎么能这样做?我还没有找到将参数传递给包含按钮名称的userform的可能性。
感谢您的帮助。
答案 0 :(得分:1)
在表格中
Sub Start_Form(Called_From as string)
'Process Called_From as needed
End Sub
当你打电话给你的表格时,只需按下面的
调用sub<form_name>.Start_Form "Button Called From"
<form_name>.Show
基本上你必须通过userform中的另一个sub(可以被称为任何东西)传递变量,然后在
之后显示表单用户表单代码
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