3

我有一个名为“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")并且效果很好。但是,我似乎无法获得组合框。

4

2 回答 2

1

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

Debug.Print ActiveSheet.Shapes("Facility").OLEFormat.Object.Value
于 2013-03-19T12:45:46.613 回答
1

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

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

访问它。我想这就是你需要的?

于 2013-03-19T12:54:36.757 回答