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