Excel 关于用户窗体中的选项按钮

Excel 关于用户窗体中的选项按钮,excel,user-controls,vba,Excel,User Controls,Vba,我有一个问题: 我需要创建一个用户表单,其中包含常用的“确定”和“取消”按钮。它还应该包含两组选项按钮,每组放置在一个框架内。第一盘的字幕应该是篮球、棒球、足球,第二盘的字幕应该是看电视和看比赛。我需要在模块中编写事件处理程序和代码,这样当程序运行时,用户就可以看到表单。如果用户做出两个选择并单击“确定”,他会看到一条消息,如“你最喜欢的运动是篮球,你通常在电视上观看。”如果用户单击“取消”,则会显示消息“抱歉,你不想玩” 我想我几乎让它工作了,但我不知道为什么我不能成功地执行宏 我的代码是:

我有一个问题:

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

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

我的代码是:

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

非常感谢

如果希望在单击“确定”时运行
命令按钮中的代码,则需要将其放入“确定”按钮的单击处理程序中:
btnok\u Click()
;同样,对于
CommandButton2\u CLick()
btncancel\u CLick()
如果希望在单击确定时运行
commandbuttons\u CLick()
中的代码,则需要将其放入确定按钮的单击处理程序中:
btnok\u CLick()
;同样,对于
CommandButton2\u CLick()
btncancel\u CLick()
如果希望在单击确定时运行
commandbuttons\u CLick()
中的代码,则需要将其放入确定按钮的单击处理程序中:
btnok\u CLick()
;同样,对于
CommandButton2\u CLick()
btncancel\u CLick()
如果希望在单击确定时运行
commandbuttons\u CLick()
中的代码,则需要将其放入确定按钮的单击处理程序中:
btnok\u CLick()
;同样,对于
CommandButton2\u CLick()
btncancel\u CLick()

  • 您应该将按钮命名为“OK按钮”和“CancelButton”或类似的名称。以后追踪它们会更容易。你的单选按钮也是一样(棒球、篮球等)
  • 您不需要select语句或if语句
  • 我认为Frame1和Frame2没有可以调用的.Value属性

  • 下面是一些示例代码。您将向工作表中添加一个可以单击的对象。在本例中,我刚刚插入了一个矩形对象。形成“插入”选项卡。然后在UserForm代码中,我将Ok按钮重命名为OkButton,并添加了函数OkButton\u click。单击时,我捕获单选按钮的值。我给它们取名为棒球、篮球和足球,也相应地给它们取名为“看了就走”。如果其中一个是真的,那么我分配“game”,这是一个字符串,我声明它是游戏的适当标题。我也做了同样的事情,不管这个人是喜欢看比赛还是喜欢看比赛。然后我添加了CancelButton\u 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
    

  • 这里有几件事:

  • 您应该将按钮命名为“OK按钮”和“CancelButton”或类似的名称。以后追踪它们会更容易。你的单选按钮也是一样(棒球、篮球等)
  • 您不需要select语句或if语句
  • 我认为Frame1和Frame2没有可以调用的.Value属性

  • 下面是一些示例代码。您将向工作表中添加一个可以单击的对象。在本例中,我刚刚插入了一个矩形对象。形成“插入”选项卡。然后在UserForm代码中,我将Ok按钮重命名为OkButton,并添加了函数OkButton\u click。单击时,我捕获单选按钮的值。我给它们取名为棒球、篮球和足球,也相应地给它们取名为“看了就走”。如果其中一个是真的,那么我分配“game”,这是一个字符串,我声明它是游戏的适当标题。我也做了同样的事情,不管这个人是喜欢看比赛还是喜欢看比赛。然后我添加了CancelButton\u 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
    

  • 这里有几件事:

  • 您应该将按钮命名为“OK按钮”和“CancelButton”或类似的名称。以后追踪它们会更容易。你的单选按钮也是一样(棒球、篮球等)
  • 您不需要select语句或if语句
  • 我认为Frame1和Frame2没有可以调用的.Value属性

  • 下面是一些示例代码。您将向工作表中添加一个可以单击的对象。在本例中,我刚刚插入了一个矩形对象。形成“插入”选项卡。然后在UserForm代码中,我将Ok按钮重命名为OkButton,并添加了函数OkButton\u click。单击时,我捕获单选按钮的值。我给它们取名为棒球、篮球和足球,也相应地给它们取名为“看了就走”。如果其中一个是真的,那么我分配“game”,这是一个字符串,我声明它是游戏的适当标题。我也做了同样的事情,不管这个人是喜欢看比赛还是喜欢看比赛。然后我添加了CancelButton\u 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
    

  • 这里有几件事:

  • 您应该将按钮命名为“OK按钮”和“CancelButton”或类似的名称。以后追踪它们会更容易。你的单选按钮也是一样(棒球、篮球等)
  • 您不需要select语句或if语句
  • 我认为Frame1和Frame2没有可以调用的.Value属性

  • 下面是一些示例代码。您将向工作表中添加一个可以单击的对象。在本例中,我刚刚插入了一个矩形对象。形成“插入”选项卡。然后在UserForm代码中,我将Ok按钮重命名为OkButton,并添加了函数OkButton\u click。单击时,我捕获单选按钮的值。我给他们起名叫棒球、篮球和f