Private Sub CheckBox1_Change()
Call 修改(Me.CheckBox1.Value)
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
True =
End Sub
然后创建一个模块,在模块中写入以下代码:
Sub 修改(a)
Dim StartLine
With ThisWorkbook.VBProject.VBComponents("UserForm1").CodeModule
StartLine = .ProcBodyLine("UserForm_Initialize", vbext_pk_Proc)
.ReplaceLine StartLine + 1, "Me.CheckBox1.Value = " & a
End With
End Sub
Sub test()
UserForm1.Show
End Sub
以上代码都不难,本文主要来讲解以下制作思路以及代码逻辑。
首先,我们要在窗体打开时决定复选框是否勾选,那么,在窗体的初始化事件中,我们就应该有一个关于复选框赋值的代码,于是就有了以下代码
Private Sub UserForm_Initialize()
Me.CheckBox1.Value = True
End Sub
其次,当我们的复选框的的值改变时,我们需要修改初始化时,复选框赋的初始值。于是就有了以下代码
Private Sub CheckBox1_Change()
Call 修改(Me.CheckBox1.Value)
End Sub
如上代码,我们需要写一个能够自动修改的过程,并将复选框改变后的值作为传递参数。
下面我们来写修改过程的代码:
Sub 修改(a)
Dim StartLine
With ThisWorkbook.VBProject.VBComponents("UserForm1").CodeModule
StartLine = .ProcBodyLine("UserForm_Initialize", vbext_pk_Proc)
.ReplaceLine StartLine + 1, "Me.CheckBox1.Value = " & a
End With
End Sub
在模块中写入以上代码,它的意思是修改UserForm1模块中UserForm_Initialize中第一行的代码,具体要修改第几行,我们看可以根据实际情况来定,更灵活一点的,我们可以利用循环加判断来定位需要修改的行。
最后,我们加入关闭窗体的代码
Private Sub CommandButton1_Click()
Unload Me
End Sub
以及打开窗体的过程
Sub test()
UserForm1.Show
End Sub
好了,本期教程就到这里啦,走过路过的点个关注分享一下吧,谢谢啦,如果你是一个VBA小白,想要了解该如何开始学习VBA,建议看看以下文章
Excel VBA学习路线知识框架梳理(小白VBA入门必看-建议收藏)