0

我有个问题:

我需要创建一个包含通常的确定和取消按钮的用户表单。它还应该包含两组选项按钮,每组都放置在一个框架内。第一组的字幕应该是篮球、棒球、足球,第二组的字幕应该是看电视去比赛。我需要在模块中编写事件处理程序和代码,以便在程序运行时,用户可以看到表单。如果用户做出几个选择并单击“确定”,他应该会看到一条消息,例如“您最喜欢的运动是篮球,您通常在电视上观看”。如果用户单击“取消”,则应出现“抱歉,您不想玩”消息。

在此处输入图像描述

我想我几乎让它工作了,但我不知道为什么我不能成功执行宏。

我的代码是:

Option Explicit

Private Sub CommandButton2_Click()


MsgBox ("sorry if you don't want to play")
End Sub

Private Sub commandbuttons_Click()
Dim optbasket As String, optbaseball As String, optfootball As String
Dim optwog As String, optgtg As String

 Select Case True
 Case optbasket
   optbasket = True
 Case optbaseball
   optbaseball = True
 Case optfootball
   optfootball = True
  End Select

If optwog Then
  optwog = True
  Else
  optgtg = True
  End If

btnok = MsgBox("you favorite sport is " & Frame1.Value & "you usually " & Frame2.Value & ",")
End Sub

Private Sub OptionButton1_Click()

End Sub

Private Sub btmcancel_Click()

End Sub

Private Sub btnok_Click()

End Sub

Private Sub Frame1_Click()

End Sub

Private Sub Frame2_Click()

End Sub

Private Sub optbaseball_Click()

End Sub

Private Sub optbasketball_Click()

End Sub

Private Sub optfootball_Click()

End Sub

非常感谢!!!

4

2 回答 2

3

这里有几件事:

  1. 您应该将按钮命名为“OkButton”和“CancelButton”或类似名称。他们以后会更容易跟踪。您的单选按钮(棒球、篮球等)也是如此
  2. 您不需要您的 select 语句或 if 语句
  3. 我认为 Frame1 和 Frame2 没有您可以调用的 .Value 属性

  4. 这是一些示例代码。您可以在工作表中添加一个可以单击的对象。在这个例子中,我只是插入了一个矩形对象。形成插入选项卡。然后在 UserForm 代码中,我将 Ok Button 重命名为 OkButton 并添加了 OkButton_click 函数。单击它时,我会捕获单选按钮的值。我相应地将它们命名为棒球、篮球和足球,以及观看和去。如果其中一个为真,那么我分配“游戏”,这是一个我声明为游戏适当标题的字符串。我对这个人是否喜欢去看比赛或看比赛做了同样的事情。然后我添加了 CancelButton_Click 函数来关闭 userForm。

    Private Sub Rectangle1_Click()
       UserForm1.Show
    End Sub
    
    Private Sub OkButton_Click()
        Dim game as String, watchOrGo as String
        If baseball Then game = "baseball"
        If basketball Then game = "basketball"
        If football Then game = "football"
    
        If watch Then watchOrGo = "watch"
        If go then watchOrGo = "go"
    
        okbtn = Msg("Your favorite sport is " & game & ". You usually " & watchOrGo)
     End Sub
    
     Private Sub CancelButton_Click()
        cnclbtn = Msg("Sorry you don't want to play")
        Unload Me
     End Sub
    
于 2013-11-05T17:09:20.957 回答
0

如果您希望在commandbuttons_Click()单击确定时运行代码,则需要将其放入确定按钮的单击处理程序中 btnok_Click():同样对于CommandButton2_CLick()btncancel_Click()

于 2013-11-05T03:50:53.143 回答