Vba 如果一个命令按钮为OK,另一个按钮为CANCEL,如何执行所需的操作

Vba 如果一个命令按钮为OK,另一个按钮为CANCEL,如何执行所需的操作,vba,excel,excel-2007,Vba,Excel,Excel 2007,有人能告诉我如何根据命令按钮选项执行某些任务吗。 我有一个Userform,其中用户提交数据,它有两个命令按钮,一个是OK,另一个是CANCEL。当用户单击“取消”时,我必须退出,当用户单击“确定”时,我必须继续此过程 file_name=userform1.textbox1.value 这就是我们如何将文本框的数据输入到函数中的方法,但如何知道按下了哪个命令按钮?因为如果按“确定”或“取消”,操作仍在执行。我试过这样的 value=userform1.

有人能告诉我如何根据命令按钮选项执行某些任务吗。 我有一个Userform,其中用户提交数据,它有两个命令按钮,一个是OK,另一个是CANCEL。当用户单击“取消”时,我必须退出,当用户单击“确定”时,我必须继续此过程

             file_name=userform1.textbox1.value
这就是我们如何将文本框的数据输入到函数中的方法,但如何知道按下了哪个命令按钮?因为如果按“确定”或“取消”,操作仍在执行。我试过这样的

       value=userform1.commandbutton1.value 
       value2=userform1.commandbutton2.value
不工作。我甚至试过这些

      commandbutton1_click() \\ this is the OK command button 
      call main
      end sub
      commandbutton2_click() \\ this is the CANCEL command button
      end sub
我试图从OK子程序调用main子程序,但它说找不到main例程,因为我在thisworkbook中编写了这些代码。commandbutton1_单击例程位于Userform1模块内 那么我该如何让它工作呢?我希望你明白我在哪里结巴。提前谢谢你

Private Sub CommandButton1_Click() 'should be called cmdOk
    main
End Sub

Private Sub CommandButton2_Click() 'should be called something like cmdCancel
    Unload Me
End Sub

Private Sub main()
    'DO PROCESSING
End Sub

您是否在
Form\u Load()
Form\u Activate()
上调用
main
或类似的功能?单击“取消”时,上面的命令将卸载表单。单击“确定”时,将开始处理。没有更多了。

如果您想将main方法保留在用户表单之外,您可以根据@cularis给出的示例尝试类似的方法

' This way you can keep your code in ThisWorkbook    
' I would recommend creating a new module. 
' You can name your module whatever you'd like. 

Private Sub CommandButton1_Click()
    ThisWorkbook.main
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub 

您希望在窗体显示在屏幕上时执行操作,还是仅在窗体关闭并单击“确定”后执行操作?