You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA编程:如何将两个数据源合并到同一个图表中?

解决VBA图表合并两个数据源的问题

你遇到的问题是因为SetSourceData方法会直接替换图表的现有数据源,而非追加内容,所以第二次调用会覆盖第一次的图表数据。下面是两种可行的解决方案:

方法1:手动添加数据系列(推荐,适用于跨工作表数据源)

创建图表后,先设置第一个数据源,再通过NewSeries方法添加第二个数据系列,指定其数据源和名称:

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

' 创建图表
Set cht = Sheets("Plot").Shapes.AddChart2

' 设置第一个数据系列并命名
cht.Chart.SetSourceData Source:=rng
cht.Chart.SeriesCollection(1).Name = "Before"

' 添加第二个数据系列
With cht.Chart.SeriesCollection.NewSeries
    .Name = "After"
    .Values = rng2
End With

方法2:复制数据到同一工作表后合并

如果允许临时修改工作表数据,可以将两个数据源复制到同一工作表的连续区域,再设置为图表的数据源:

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

' 将After的数据复制到Plot工作表的C列(确保该区域为空)
rng2.Copy Destination:=Sheets("Plot").Range("C1")
' 合并两个连续区域
Set combinedRng = Union(Sheets("Plot").Range("B1:B11"), Sheets("Plot").Range("C1:C11"))

' 创建图表并设置合并后的数据源
Set cht = Sheets("Plot").Shapes.AddChart2
cht.Chart.SetSourceData Source:=combinedRng

内容的提问来源于stack exchange,提问作者javier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:20:30