选中Userform1中的复选框以显示是和否。 VBA代码

时间:2018-11-09 13:41:46

标签: vba checkbox

我有一个名为keylist的工作表,并为其创建了一个userform1。简单,没有幻想。

userform1上的选项为日期,键号,地址,键入(复选框1),退出(复选框2)和注释。

除了复选框外,我所有的userform1都正常工作。这就是我所拥有的:

Private Sub CommandButton1_Click()

Dim dcc As Long
 Dim abc As Worksheet

 Set abc = Worksheets("Key List")

With abc

   dcc = .Range("A" & Rows.Count).End(xlUp).Row

.Cells(dcc + 1, 1).Value = Date
.Cells(dcc + 1, 2).Value = Me.TextBox1.Value
.Cells(dcc + 1, 3).Value = Me.TextBox2.Value
.Cells(dcc + 1, 4).Value = Me.CheckBox1.Value
'.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
.Cells(dcc + 1, 6).Value = Me.TextBox3.Value

If Me.CheckBox1.Value = True Then

.Cells(dcc + 1, 4).Value = "Yes"

Else

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""

End If
End With

End Sub  

并且:

Private Sub UserForm_Initialize()

Dim wsActive As Worksheet
Dim i As Long, LastRow As Long
Set wsActive = ActiveSheet
LastRow = wsActive.Cells(wsActive.Rows.Count).End(xlUp).Row

End Sub

我在else复选框1之后有代码,但是它实际上没有工作,所以我删除了它。文本框4中的'是有意的,因为我正在考虑在工作表和表单中添加另一个字段,然后决定不添加,但留给我以备需要。

正如我上面所说的,所有方法都可以,但是复选框功能不起作用。我的目标是/如果在表格中选择了“输入”,则在表中输入“是”,如果选择了“输入”,则无法选择“输出”。从逻辑上讲,任何东西都不能同时进出是有意义的,在任何给定时间都是一个或另一个。那么我该如何处理并使它们的复选框起作用?

Sheet Form

我尝试了很少的事情,但都无济于事。如果有人可以帮助VBA代码并帮助使复选框正常工作,我将非常感激。如果在userform1上单击添加条目并且没有字段被填充,则还要输入另一件事。我该如何阻止这种情况的发生?用户必须填写字段以进行输入,否则,如果错误地单击了添加条目,并且工作表中出现空白条目,则由于输入的日期仍为空白,因此为空白。

在此先感谢您的帮助。干杯。

1 个答案:

答案 0 :(得分:0)

Private Sub CommandButton1_Click()

  Dim dcc As Long
  Dim abc As Worksheet
  Dim Yc As Long

   Set abc = Worksheets("Key List")
   Yc = Choose(Me.OptionButton1 + 2, 4, 5)

   With abc

  dcc = .Range("A" & Rows.Count).End(xlUp).Row

  .Cells(dcc + 1, 1).Value = Date
  .Cells(dcc + 1, 2).Value = Me.TextBox1.Value
  .Cells(dcc + 1, 3).Value = Me.TextBox2.Value
  .Cells(dcc + 1, Yc).Value = "Yes"
  '.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
  .Cells(dcc + 1, 6).Value = Me.TextBox3.Value

 End With

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
Me.OptionButton1 = 0
Me.OptionButton2 = 0

End Sub