无法从用户窗体中读取按钮单击的值

时间:2010-03-06 05:42:24

标签: excel-vba userform vba excel

我希望这是一个相对容易的问题,尽管我花了几个小时进行网络搜索并使用T& E无济于事。希望有人可以提供帮助; o)

我有一个excel模块,它显示了一个UserForm,可以在进行大量处理之前获取一些输入数据。在用户窗体的底部有两个标记为“确定”和“取消”的命令按钮。我需要能够让用户更改选项按钮,然后单击确定或取消退出,我的模块将继续基于的过程是否按下了“取消”。我似乎无法通过按下表单上的“取消”按钮找到读取布尔结果的方法。我99%确定它是某种公共/私有引用错误,但是我还没有足够的经验来解决它。这是代码片段:


(来自Module1)

Sub ModuleName()

Dim State as Boolean
' Display Parameter box
UserForm2.Show
If UserForm2.ButtonCancel Then
    State = True
Else
    State = False
End If

End Sub

根据取消的真或假,我可以开始其余程序。


(UserForm2代码)

Private Sub ButtonCancel_Click()

 BtnCancel = True

Unload Me

End Sub

Private Sub ButtonOK_Click()

 BtnCancel = False

Unload Me

End Sub


Private Sub ButtonReset_Click()

'Set the Default Settings

NEAlias.Value = "True"

NoteIgnore.Value = "True"

ABIgnore.Value = "True"

LinkIgnore.Value = "True"

End Sub

Private Sub UserForm_Initialize()

Dim BtnCancel As Boolean

'Add the Text to the options

NEIgnore.Caption = "Ignore"

NoteIgnore.Caption = "Ignore"

ABIgnore.Caption = "Ignore"

LinkIgnore.Caption = "Ignore"

NEAlias.Caption = "Alias Only"

NoteAlias.Caption = "Alias Only"

ABAlias.Caption = "Alias Only"

LinkAlias.Caption = "Alias Only"

NEMove.Caption = "Move and Alias"

NoteMove.Caption = "Move and Alias"

ABMove.Caption = "Move and Alias"

LinkMove.Caption = "Move and Alias"

'Set the Default Settings

NEAlias.Value = "True"

NoteIgnore.Value = "True"

ABIgnore.Value = "True"

LinkIgnore.Value = "True"

End Sub

就是这样。它看起来应该很简单,但我很难过。 TIA提供任何帮助!

1 个答案:

答案 0 :(得分:3)

[解决] 我终于想通了。我只需要在Module1的声明部分中声明:

Public BtnCancel As Boolean