从Excel用户窗体返回值或取消
我有一个sub,它调用userform来显示,并且只希望在用户没有单击我的取消按钮时继续。我不想将所有其他子调用都放在userform中 是否可以让userform返回一个值或一种检查用户是否单击了某个特定按钮的方法从Excel用户窗体返回值或取消,excel,vba,userform,Excel,Vba,Userform,我有一个sub,它调用userform来显示,并且只希望在用户没有单击我的取消按钮时继续。我不想将所有其他子调用都放在userform中 是否可以让userform返回一个值或一种检查用户是否单击了某个特定按钮的方法 我想我可以使用一个全局变量,但我想知道我是否可以在userform之间传递东西。我更喜欢使用属性 在您的用户表单中 Private m_bCancel As Boolean Public Property Get Cancel() As Boolean Cancel =
我想我可以使用一个全局变量,但我想知道我是否可以在userform之间传递东西。我更喜欢使用属性 在您的用户表单中
Private m_bCancel As Boolean
Public Property Get Cancel() As Boolean
Cancel = m_bCancel
End Property
Public Property Let Cancel(ByVal bCancel As Boolean)
m_bCancel = bCancel
End Property
取消按钮的代码
Private Sub cmdCancel_Click()
Me.Cancel=True
Me.Hide
End Sub
像这样从外部调用userForm
sub loadForm()
dim frm
set frm= new UserForm1
frm.show
if frm.Cancel then
Msgbox "Cancelled"
end if
End Sub
我更喜欢使用属性 在您的用户表单中
Private m_bCancel As Boolean
Public Property Get Cancel() As Boolean
Cancel = m_bCancel
End Property
Public Property Let Cancel(ByVal bCancel As Boolean)
m_bCancel = bCancel
End Property
取消按钮的代码
Private Sub cmdCancel_Click()
Me.Cancel=True
Me.Hide
End Sub
像这样从外部调用userForm
sub loadForm()
dim frm
set frm= new UserForm1
frm.show
if frm.Cancel then
Msgbox "Cancelled"
end if
End Sub
我更喜欢使用属性 在您的用户表单中
Private m_bCancel As Boolean
Public Property Get Cancel() As Boolean
Cancel = m_bCancel
End Property
Public Property Let Cancel(ByVal bCancel As Boolean)
m_bCancel = bCancel
End Property
取消按钮的代码
Private Sub cmdCancel_Click()
Me.Cancel=True
Me.Hide
End Sub
像这样从外部调用userForm
sub loadForm()
dim frm
set frm= new UserForm1
frm.show
if frm.Cancel then
Msgbox "Cancelled"
end if
End Sub
我更喜欢使用属性 在您的用户表单中
Private m_bCancel As Boolean
Public Property Get Cancel() As Boolean
Cancel = m_bCancel
End Property
Public Property Let Cancel(ByVal bCancel As Boolean)
m_bCancel = bCancel
End Property
取消按钮的代码
Private Sub cmdCancel_Click()
Me.Cancel=True
Me.Hide
End Sub
像这样从外部调用userForm
sub loadForm()
dim frm
set frm= new UserForm1
frm.show
if frm.Cancel then
Msgbox "Cancelled"
end if
End Sub
我会自己使用全局变量。还有其他方法可以做到这一点,但这会起作用。从UserForm,您是否在其他地方(如在单独的模块中)调用处理用户输入的子例程?您可以将
UserFom1.ActiveControl.Name
传递给该函数,并根据控件的名称使用CASE
语句。我将自己使用全局变量。还有其他方法可以做到这一点,但这会起作用。从UserForm,您是否在其他地方(如在单独的模块中)调用处理用户输入的子例程?您可以将UserFom1.ActiveControl.Name
传递给该函数,并根据控件的名称使用CASE
语句。我将自己使用全局变量。还有其他方法可以做到这一点,但这会起作用。从UserForm,您是否在其他地方(如在单独的模块中)调用处理用户输入的子例程?您可以将UserFom1.ActiveControl.Name
传递给该函数,并根据控件的名称使用CASE
语句。我将自己使用全局变量。还有其他方法可以做到这一点,但这会起作用。从UserForm,您是否在其他地方(如在单独的模块中)调用处理用户输入的子例程?您可以将UserFom1.ActiveControl.Name
传递给该函数,并根据控件的名称使用CASE
语句。我尝试了这个方法,得到了一个“堆栈空间不足”错误。它一直在Let Cancel属性中循环。我尝试了这个,但得到了一个“堆栈空间不足”错误。它一直在Let Cancel属性中循环。我尝试了这个,但得到了一个“堆栈空间不足”错误。它一直在Let Cancel属性中循环。我尝试了这个,但得到了一个“堆栈空间不足”错误。它在Let Cancel属性中不断循环。