代码之家  ›  专栏  ›  技术社区  ›  Alexander Prokofyev

启用/禁用Excel 2007组合框

  •  0
  • Alexander Prokofyev  · 技术社区  · 15 年前

    我需要禁止用户在通过开发人员菜单按条件插入的Excel2007组合框控件中选择值。现在我只能显示/隐藏控件。

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

    是否可以启用/禁用它?

    3 回复  |  直到 15 年前
        1
  •  2
  •   dendarii    15 年前

    这不会导致“典型”启用/禁用控件,如果您使用的是ActiveX组合框而不是窗体组合框,则会获得该控件,但它会阻止用户访问该控件:

    Sub ChangeState()
    
        Dim shp As Shape
        Set shp = ActiveWorkbook.Worksheets("summary").Shapes("months")
        shp.ControlFormat.Enabled = Not shp.ControlFormat.Enabled
    
    End Sub
    
        2
  •  1
  •   Christian Payne Larry Baltz    15 年前

    我以前对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
    
        3
  •  0
  •   Alexander Prokofyev    15 年前

    我已经找到可通过以下方式禁用组合框控件的内容:

    ActiveWorkbook.Worksheets("summary").DropDowns("months").Enabled = year <> ""
    

    但不幸的是,它不会被灰显以直观地显示其状态。

    推荐文章