当我在combobox1发生更改时设置combobox2.enable = True
时收到上述错误消息。
Private Sub ComboBox1_Change()
If ComboBox1.Value = "One Session" Then
ComboBox2.Enabled = True
End If
End Sub
有人可以告诉我出了什么问题吗?感谢
答案 0 :(得分:0)
确保每个组合框的名称是ComboBox1和ComboBox2。如果你重命名它们,可能会出现这样的错误。
另外如果你因为某种原因禁用了combobox2(Enabled = false),这就是你需要的,但是如果你想让excel将焦点设置到ComboBox2上,请使用ComboBox2.SetFocus
答案 1 :(得分:0)
我相信组合框在你的工作表中。
导致此错误有两个主要原因。
禁用ActiveX控件。您可能希望查看THIS或
您的工作表受到保护。如果您的工作表受到保护,那么您有两种方法来处理它
方式1
Private Sub ComboBox1_Change()
ActiveSheet.Unprotect "YOUR PASSWORD"
If ComboBox1.Value = "One Session" Then
ComboBox2.Enabled = True
End If
ActiveSheet.Protect "YOUR PASSWORD"
End Sub
OR
方式2
这使用UserInterfaceOnly:=True
,它允许您仅使用宏
ActiveSheet.Protect Password:="YOUR PASSWORD", _
DrawingObjects:=True, Contents:=True, _
Scenarios:=True, UserInterfaceOnly:=True
答案 2 :(得分:0)
我一直在讨论这个问题,而且我的解决方案与之前的两个答案略有不同。在我的情况下,对象被锁定,以及工作表。我的解决方案是取消保护工作表,选择导致错误的对象,进入其属性,然后取消选中“已锁定”。然后重新保护工作表并保存。