2009-08-08 56 views
0

我想要初始化图表上存在的组合框(独立图表,而不是图表中嵌入的图表)具有两个值“费用”和“收入”。我尝试输入一个文字列表('= {“Expenses”,“Income”}'or'='(Expenses“,”Income“)'),但尝试其中任何一个都给了我错误”Reference is not有效”。 (这个地方我试图进入文字被“输入范围”字段经由访问上控制>格式控制>控制右击)在图表上初始化Excel 2007组合框

我也想尽图表被激活时间初始化控制与VBA:

Private Sub Chart_Activate() 

    Dim expensesIncomeDropDown As Object 

    Set expensesIncomeDropDown = Me.Shapes("Drop Down 1") 'Error here 
    expensesIncomeDropDown.DropDownLines = 2 
    expensesIncomeDropDown.AddItem "Expenses" 
    expensesIncomeDropDown.AddItem "Income" 

End Sub 

(“Drop Down 1”是宏记录器在记录修改控件时使用的索引,我也尝试过“DropDown1”。)但是指出的行会抛出错误:“运行时错误”-2147024809 (80070057)':找不到具有指定名称的项目。“使用VBA IDE的本地窗口检查Me(图表)的Shapes属性表明集合是空的。我尝试从Chart_BeforeDoubleClick事件中访问控件(假设Shapes集合尚未初始化为Activate事件),但我得到了相同的结果。其他人正在遇到same problem。建议感激。

回答

0

从您对右键菜单的描述中,您使用的是表单控件而不是ActiveX控件。

我不认为你可以像使用ActiveX组合框一样将值输入到下拉列表中。你必须把下拉菜单,其中包含列表中值的输入范围,手动或通过VBA:

Dim shp As Shape 

Set shp = chtTest.Shapes(1) 
If shp.Type = msoFormControl Then 
    If shp.FormControlType = xlDropDown Then 
     shp.ControlFormat.ListFillRange = ThisWorkbook.Names("rngDDValues") 
    End If 
End If 

你也应该设置单元格链接,使您可以检索所选的值。

我会建议使用ActiveX控件,但不幸的是,它看起来不像你可以添加一个图表。