如何在Excel中使用VBA编码将两个不同的图表组合起来?

bprjcwpo  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(197)
Set rng = Sheets("Before").Range("B1:B11")
Set rng2 = Sheets("After").Range("B1:B11")

'create chart
Set cht = Sheets("Plot").Shapes.AddChart2

'Give chart some data
cht.Chart.SetSourceData Source:=rng
cht.Chart.SetSourceData Source:=rng2

当我使用这两个代码:

cht.Chart.SetSourceData Source:=rng
cht.Chart.SetSourceData Source:=rng2

第一张图已经画好了,但是被第二张图代替了。2如何把两张图合并成一张图?
我已经尝试声明一个变量来添加两个图表,但是没有成功。

chhqkbe1

chhqkbe11#

对于这样的情况,我会选择不同的范围,并将每个范围绘制在一个图表中。有关详细信息,请参阅下面的链接。
https://support.microsoft.com/en-us/office/select-data-for-a-chart-5fca57b7-8c52-4e09-979a-631085113862
完成后,打开宏记录器,点击所有需要的步骤。然后记录器将生成所有你想要/需要的代码。你将不可避免地得到一些多余的代码,但你也将有你需要做你想做的事情的确切代码。

yhxst69z

yhxst69z2#

您需要添加第二个数据源作为新系列。SetSourceData将接管整个图表源数据区域。

Set rng = Sheets("Before").Range("B1:B11")
Set rng2 = Sheets("After").Range("B1:B11")

'create chart
Set cht = Sheets("Plot").Shapes.AddChart2

'Give chart some data
cht.Chart.SetSourceData Source:=rng

' Add Data
With cht.SeriesCollection.NewSeries
    .Values = rng2
End With

如果每个工作表中的单元格B1用于系列名称,则可能会更加复杂。

相关问题