启用/禁用Excel 2007组合框

时间:2009-09-18 13:30:38

标签: excel-vba excel-2007 controls vba excel

我需要禁止用户在条件下通过Developer菜单插入的某些Excel 2007组合框控件中选择值。现在我设法只显示/隐藏控件。

ActiveWorkbook.Worksheets("summary").Shapes("months").Visible = year <> ""

是否可以启用/禁用它?

3 个答案:

答案 0 :(得分:2)

如果你使用ActiveX组合框而不是Forms组合框,这不会导致“典型”启用/禁用控件,但它确实阻止用户访问它:

Sub ChangeState()

    Dim shp As Shape
    Set shp = ActiveWorkbook.Worksheets("summary").Shapes("months")
    shp.ControlFormat.Enabled = Not shp.ControlFormat.Enabled

End Sub

答案 1 :(得分:1)

我曾经遇到过与MS Access相同的问题。

状态(启用/禁用)与演示文稿(背景颜色=灰色)不同

我以前解决这个问题的方法是两者兼顾:

Dim enabled As Boolean
enabled = year <> ""

ActiveWorkbook.Worksheets("Sheet1").Shapes(1).Enabled = enabled

If enabled Then
    ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbGrey
Else
    ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbWheat
End If

答案 2 :(得分:0)

我已经找到了可以通过

禁用组合框控件的内容
ActiveWorkbook.Worksheets("summary").DropDowns("months").Enabled = year <> ""

但不幸的是,它在视觉上显示其状态时不会变灰。