2

当我设置combobox2.enable = Truecombobox1 发生变化时,我收到了上述错误消息。

Private Sub ComboBox1_Change()

   If ComboBox1.Value = "One Session" Then
      ComboBox2.Enabled = True
   End If
End Sub

有人可以告诉我出了什么问题吗?谢谢

4

3 回答 3

0

确保每个组合框的名称是 ComboBox1 和 ComboBox2。如果你重命名它们,它可能会给出这样的错误。

另外,如果您出于某种原因禁用了 combobox2 (Enabled=false),这就是您所需要的,但是如果您试图让 excel 将焦点设置在 ComboBox2 上,请使用ComboBox2.SetFocus

于 2013-04-20T21:51:38.903 回答
0

我相信组合框在您的工作表中。

出现此错误的主要原因有两个。

  1. ActiveX 控件被禁用。你可能想看这个

  2. 您的工作表受到保护。如果您的工作表受到保护,那么您有两种方法来处理它

方式一

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
于 2013-04-21T07:01:50.063 回答
0

我一直遇到这个问题,我的解决方案与前两个答案略有不同。在我的情况下,对象和工作表都被锁定。我的解决方案是取消保护工作表,选择导致错误的对象,进入其属性,然后取消选中“锁定”。然后重新保护工作表并保存。

于 2015-07-08T20:29:02.647 回答