以下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
答案 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会怎么样)但是我留给你了