2009-09-18 60 views
0

我需要禁止用戶通過條件在開發人員菜單中插入某些Excel 2007組合框控件中選擇值。現在我只管理顯示/隱藏控制。啓用/禁用Excel 2007組合框

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

是否可以啓用/禁用它呢?

回答

2

這不會導致「典型的」啓用/禁用的控制,如果你正在使用的ActiveX組合框,而不是一個窗體ComboBox,你會得到,但它確實阻止訪問它的用戶:

Sub ChangeState() 

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

End Sub 
0

我有什麼發現ComboBox控件可以通過

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

被禁用但不幸的是它不會顯示爲灰色直觀地顯示其狀態。

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 
+0

我beleive Shape對象不在Excel中具有Enabled屬性,因此應使用Shapes(1).ControlFormat.Enabled。謝謝! – 2009-09-23 04:39:30