无法选择组合框

时间:2013-03-19 12:36:10

标签: excel vba combobox module

我有一个名为“Facility”的组合框,它已作为表单控件添加到Excel 2010工作表中。我还有一个标题为“AdjustmentsAmount”的模块,它在单击表单按钮上运行以下方法。我已经尝试了几种访问表单控件的方法,但没有一种工作,也在下面列出。有人可以解释这个问题吗?

代码

'Clears all run specifications
Sub clearRunSpecs_click()
    Dim resp As String
    resp = MsgBox("This will clear all run specifications. Are you sure you want to continue?", vbYesNo)
    If (resp = vbYes) Then
        Worksheets("AdjustmentsAmount").Unprotect "pass"
        Range("D3").Clear
        Range("D3").Interior.Color = RGB(235, 241, 222)
        Range("D3").BorderAround LineStyle:=XlLineStyle.xlContinuous, Weight:=xlMedium, ColorIndex:=xlColorIndexAutomatic, Color:=RGB(0, 0, 0)
        Range("D3").Locked = False
        Range("D4").Clear
        Range("D4").Interior.Color = RGB(235, 241, 222)
        Range("D4").BorderAround LineStyle:=XlLineStyle.xlContinuous, Weight:=xlMedium, ColorIndex:=xlColorIndexAutomatic, Color:=RGB(0, 0, 0)
        Range("D4").Locked = False
        Range("B4").Clear
        Range("B4").Interior.Color = RGB(235, 241, 222)
        Range("B4").BorderAround LineStyle:=XlLineStyle.xlContinuous, Weight:=xlMedium, ColorIndex:=xlColorIndexAutomatic, Color:=RGB(0, 0, 0)
        Range("B4").Locked = False
        Range("A17:D22").Clear
        Range("A17:D22").Merge
        Range("A17:D22").Interior.Color = RGB(235, 241, 222)
        Range("A17:D22").BorderAround LineStyle:=XlLineStyle.xlContinuous, Weight:=xlMedium, ColorIndex:=xlColorIndexAutomatic, Color:=RGB(0, 0, 0)
        Range("A17:D22").VerticalAlignment = xlTop
        Range("A17:D22").Locked = False
        ActiveSheet.Shapes("Facility").ListIndex = -1
        ActiveSheet.CheckBoxes("ZeroBalance").Value = xlOff
        ActiveSheet.CheckBoxes("Balance<Adj").Value = xlOff
        ActiveSheet.CheckBoxes("Balance=Adj").Value = xlOff
        Worksheets("AdjustmentsAmount").Protect "pass"
    End If
End Sub

尝试了方法

ActiveSheet.Shapes("Facility")
ActiveSheet.Facility
ActiveSheet.ListBoxes("Facility")
Application.Facility

我使用ActiveSheet.CheckBoxes("NAME")在同一方法中访问了复选框,并且运行正常。但是,我似乎无法看到组合框。

2 个答案:

答案 0 :(得分:1)

它有点隐藏 - 您可以像这样访问列表框或组合框:

Debug.Print ActiveSheet.Shapes("Facility").OLEFormat.Object.Value

答案 1 :(得分:1)

我已将空白行设置为ListIndex1并使用:

ActiveSheet.Shapes("Facility").ControlFormat.ListIndex = 1

访问它。我假设你需要的是什么?