复选框VBA不保存

时间:2017-03-20 10:29:24

标签: excel vba

以下VBA代码仅允许某些用户勾选&取消选中一个复选框。但问题是,如果我选中该框然后关闭电子表格,当我重新打开excel文件时,'tick'就不再存在了。这就像代码没有保存'tick'动作。基本上,如果我选中该框,我希望它保持这样,即使在关闭电子表格之后。在下面的VBA代码中,我添加了ThisWorkbook.Save以保存“Tick”操作,但它只是保存电子表格而不是在复选框中保存“Tick”。你能告诉我的代码有什么问题吗?我之前已经问过这个问题,但遗憾的是似乎没有人能找到解决方案。非常感谢

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
If (UCase(Environ("username")) = "TESTNAME") Then
  'Do nothing
Else
  'Uncheck because user not matching
  CheckBox1.Value = False
  MsgBox ("You are not authorized to tick this box.")
End If
End If
ThisWorkbook.Save
End Sub

1 个答案:

答案 0 :(得分:1)

在我的sheet1上我有一个commandButton(bShow)并且在后面的代码中:

Private Sub bShow_Click()
    UserForm1.Show
End Sub

然后我有一个名为UserForm1的UserForm,带有一个复选框(名为checkBox1)和一个名为saveButton的按钮,后面带有代码:

Private Sub saveButton_Click()
    Sheets(1).Cells(1, 1).Value = UserForm1.CheckBox1.Value
End Sub

在单元格中设置此设置(" A1")显示为TRUE或FALSE,具体取决于复选框状态

我希望它有所帮助

EDIT1:

打开表格,从表格中读取值:

Private Sub UserForm_Activate()
   UserForm1.CheckBox1.Value = Sheets(1).Cells(1, 1).Value
End Sub

EDIT2:

要注意错误处理(例如:如果单元格值既不是TRUE也不是FALSE会怎么样)但是我留给你了