运行时错误“1004”:无法设置OLEObject类的启用属性

我在设置combobox2.enable = True时出现了上述错误消息,当combobox2.enable = True发生更改时。

 Private Sub ComboBox1_Change() If ComboBox1.Value = "One Session" Then ComboBox2.Enabled = True End If End Sub 

有人可以告诉我哪里出了问题? 谢谢

确保每个combobox的名称是ComboBox1和ComboBox2。 如果您重命名它们,可能会导致这样的错误。

另外,如果你因为某种原因禁用了combobox2(Enabled = false),这就是你所需要的,但是如果你想让excel把焦点设置到ComboBox2上,使用ComboBox2.SetFocus

我相信combobox在你的工作表中。

得到这个错误有两个主要原因。

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

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

方法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 

要么

方式2

这使用UserInterfaceOnly:=True ,它允许您仅使用macros对工作表进行更改

 ActiveSheet.Protect Password:="YOUR PASSWORD", _ DrawingObjects:=True, Contents:=True, _ Scenarios:=True, UserInterfaceOnly:=True 

我一直在解决这个问题,而且我的解决scheme与之前的两个答案略有不同。 在我的情况下,该对象被locking,以及工作表。 我的解决scheme是取消保护工作表,select导致错误的对象,进入其属性,并取消选中“locking”。 然后重新保护工作表并保存。