如何使用vba在userform中声明自定义事件
我有一个userform,它收集一些用户输入。现在我要做的是声明一些事件,当单击OK按钮时从userform抛出。我是vba新手,所以我不知道怎么做。任何代码或教程链接将不胜感激如何使用vba在userform中声明自定义事件,vba,ms-word,Vba,Ms Word,我有一个userform,它收集一些用户输入。现在我要做的是声明一些事件,当单击OK按钮时从userform抛出。我是vba新手,所以我不知道怎么做。任何代码或教程链接将不胜感激 Load UserForm1 UserForm1.Show //here I want to capture UserForm1 OK button's click event and read the data 正如我在评论中所说,我不认为你想做的是可能的,但我想到了以下解决办法: 如果用户输入非常简单,比如只输入
Load UserForm1
UserForm1.Show
//here I want to capture UserForm1 OK button's click event and read the data
正如我在评论中所说,我不认为你想做的是可能的,但我想到了以下解决办法:
Dim sUserInput As Variant
sUserInput = InputBox("Please enter something useful.", "Title", "Default")
Debug.Print "sUserInput=" & sUserInput
Option Explicit
Private msFormString As String
Private Sub CommandButton1_Click()
msFormString = "Someone clicked on Button 1!"
'***** Note: if you use Unload Me, the string
'***** is unloaded with the form...
Me.Hide
End Sub
Public Function GetFormString() As String
GetFormString = msFormString
End Function
呼叫代码:
Load UserForm1
Call UserForm1.Show(vbModal)
Debug.Print "Value from UserForm1: " & UserForm1.GetFormString
注意:如果需要返回更多数据,函数可以返回对象、类或数组正如我在评论中所说,我不认为你想做的是可能的,但我想到了以下解决办法:
Dim sUserInput As Variant
sUserInput = InputBox("Please enter something useful.", "Title", "Default")
Debug.Print "sUserInput=" & sUserInput
Option Explicit
Private msFormString As String
Private Sub CommandButton1_Click()
msFormString = "Someone clicked on Button 1!"
'***** Note: if you use Unload Me, the string
'***** is unloaded with the form...
Me.Hide
End Sub
Public Function GetFormString() As String
GetFormString = msFormString
End Function
呼叫代码:
Load UserForm1
Call UserForm1.Show(vbModal)
Debug.Print "Value from UserForm1: " & UserForm1.GetFormString
注意:如果需要返回更多数据,函数可以返回对象、类或数组- 在子窗体中声明事件并在特定时刻引发它:
- 在自定义类模块、工作表类模块或其他用户窗体中,可以捕获事件。但是,您无法在标准模块中捕获事件,因为WithEvents变量仅在对象模块中有效。要捕获其他用户窗体中的事件,请声明类型为childUserForm和的WithEvents变量 添加将捕获和处理事件的事件处理程序:
完整示例: 子用户表单: 父用户窗体:
- 在子窗体中声明事件并在特定时刻引发它:
- 在自定义类模块、工作表类模块或其他用户窗体中,可以捕获事件。但是,您无法在标准模块中捕获事件,因为WithEvents变量仅在对象模块中有效。要捕获其他用户窗体中的事件,请声明类型为childUserForm和的WithEvents变量 添加将捕获和处理事件的事件处理程序:
完整示例: 子用户表单: 父用户窗体:
来自谷歌:这不是我想要的。我有一个userform,我想在userform之外捕获它的命令按钮的点击事件。我认为这是不可能的,但是你可以在表单代码中捕获事件,然后在表单之外的模块中调用子或函数。来自Google:这不是我要找的。我有一个userform,我想在userform之外捕获它的命令按钮的click事件。我认为这是不可能的,但是你可以在表单代码中捕获事件,然后在表单之外的模块中调用一个子模块或函数。