【发布时间】:2013-11-20 15:38:01
【问题描述】:
有人问了一个类似的问题 (Set Legend Text Pie Chart),但该解决方案对我不起作用,也许我遗漏了一些东西。我对使用 VBA/Excel/Access 和报告还很陌生,而且我的截止日期有限,所以我希望有人能启发我。
我正在做的是用从访问数据库中提取的值填充一系列单元格,然后根据这些单元格值以编程方式生成饼图。饼图相当简单,包含 2 条数据。我正在根据用户的选择生成其中的 1-4 个。因此,例如,用户可以选择 A、B、C 和/或 D,每个字母对应于 2 个单元格列,每个单元格包含 # of Correct 和 # of Incorrect
报告是在对应于 A/B/C/D 的循环(1 到 4)内生成的 我用来创建图表的代码如下所示:
Charts.Add
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Cells(20,shift(shiftIndex)), Cells(21, shift(shiftIndex))
ActiveChart.HasLegend = True
这就是说使用范围 B20:B21、C20:C21 等作为正确/不正确的值。问题是图例显示“1”和“2”作为标签,我希望它显示“正确”和“不正确”
在另一个问题中,该人建议使用以下语法:
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("b6:c6," & "b" & x & ":c" & x)
在我的标签中,b6 将包含“正确”,而 c6 将包含“不正确”,但当我使用它时:
ActiveChart.SetSourceData Source:=Sheets("Sheet 1").Range("a26:a27, a20:a21")
其中 a26 包含“正确”,a27 包含“不正确”,a20 和 a21 包含我的正确和不正确的值 - 它尝试使用我的饼图中的所有 4 个值。我在这里错过了什么吗?用逗号分隔参数应该指示第一个范围作为我的图例,第二个作为我的数据源?
【问题讨论】: