Vba 将变量传递到按钮单击过程中
是否可以将变量传递到按钮单击过程中 背景: 我有两个过程,都执行一些操作,然后都打开表单1。现在,根据打开表单1的过程,我希望命令按钮使用表单上的数据执行不同的任务。通常,我会将变量从第一个过程传递到被调用的过程中 但是,由于它是一个被调用的表单,需要用户单击命令按钮来启动第二个过程,我认为不可能将变量传递给这个过程 目前,我在过程1:Vba 将变量传递到按钮单击过程中,vba,excel,Vba,Excel,是否可以将变量传递到按钮单击过程中 背景: 我有两个过程,都执行一些操作,然后都打开表单1。现在,根据打开表单1的过程,我希望命令按钮使用表单上的数据执行不同的任务。通常,我会将变量从第一个过程传递到被调用的过程中 但是,由于它是一个被调用的表单,需要用户单击命令按钮来启动第二个过程,我认为不可能将变量传递给这个过程 目前,我在过程1:override=False和过程2:override=True中分配了一个公共变量,但我知道使用公共变量(从我所读到的内容来看)通常是不受欢迎的 在button
override=False
和过程2:override=True
中分配了一个公共变量,但我知道使用公共变量(从我所读到的内容来看)通常是不受欢迎的
在button_click过程中,我使用这个变量相应地路由代码
Private Sub CommandButton1_Click()
If override Then
Call override_data
Else
Call submit_data
End If
End Sub
在这种情况下,我可以使用公共变量吗?还是有更好的方法来实现我的目标?正如@PeterT的评论所建议的那样,我最终阅读了关于用户表单属性的文章
这使我能够使用用户表单属性而不是公共变量。“取决于打开表单的过程1”-这是否意味着可以单击两个不同的按钮来打开表单?或者表单是先打开的(两种方式中的一种),您想让按钮知道这一点?第一种假设是正确的;有两个不同的按钮可以在userform上单击,然后运行其中一个过程,从而打开form_1。为什么不将每个过程分配给不同的按钮?也许我有点困惑。使用公共变量是可以的——我会把它放在表单中,并在显示表单之前设置它——但在表单中使用属性过程会更好。看看Jon Peltier,了解如何设置和读取用户表单属性。这将解决您的问题并避免使用公共变量。