0

我正在尝试使用宏为图表对象设置数据集。宏选择了我想要的正确范围(我通过使用 rng.Select 和调试进行检查)但是当我在宏完成运行后右键单击图表对象并选择 Select Data 它说数据范围太复杂而无法显示并且确实未正确填充我的图表。我的宏在下面。任何指针表示赞赏。

编辑。我有一份工作表的副本,其中图表是手动从填充的数据创建的,单击此图表上的选择数据显示非连续范围很好 - 只有在尝试通过宏为预先存在的图表设置它时不起作用。

Sub test()

UpdateChart 27, 64

End Sub

Sub UpdateChart(ByVal row As Long, ByVal col As Long)

Dim sht As Worksheet
Set sht = Worksheets("Report4_Chart")
Dim data As Worksheet
Set data = Worksheets("Report4")
Dim rng As Range
Dim exclude As Range

data.Activate

Set exclude = data.Rows(25)
Set rng = data.Range("A24", Intersect(data.Rows(row), data.Columns(col)))
Set rng = SetDifference(rng, exclude)
rng.Select

sht.Activate

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=rng

End Sub

在此处输入图像描述

4

1 回答 1

0

对于偶然发现这个老问题的其他人:我刚刚发现,基于非连续范围的图表似乎只有在范围形成一个矩形时才有效。

例如,我试图将单元格 A1、A7 和 C1 分组,但无法正常工作。但是,当我使用 A1、C1、A7 和 C7 时,它确实有效。

(实际上,我的范围都比单个单元格大。但是“缺失”的范围与其上方的范围相同,并且与它侧面的高度相同。因此,组合范围形成了一个矩形。 )

于 2016-03-29T18:27:39.593 回答