Excel中ChartObject转Shape图表:避免重叠且合并单系列问题
Excel VBA:改用Shape创建直方图时系列识别异常问题
我当前使用ChartObject在Excel中创建两个直方图,但ChartObject需要指定图表在工作表中的物理位置,而我的应用中这两个图表会被多次生成,因此希望改用Shape对象避免重叠。然而切换后,尺寸和位置均为动态的数据与坐标轴范围被识别为多个独立系列,而非单个系列。我所见的Shape对象示例多使用静态且相邻的范围(如A1:B5),但我的数据并非如此。附上期望的图表样式(左侧为目标效果)及代码,寻求解决帮助:
Dim GammaSetChart As ChartObject Dim GammaSetData As Range, GammaSetAxes As Range Set GammaSetChart = ws3.ChartObjects.Add(Left:=180, Width:=300, Top:=7, Height:=200) Set GammaSetData = ws3.Range(ws3.Cells(2 + emptyRow, num_sims + num_sims2 + 2), ws3.Cells(2 + emptyRow + num_source_bins, num_sims + num_sims2 + 2)) GammaSetChart.Chart.SetSourceData Source:=GammaSetData Set GammaSetAxes = ws3.Range(ws3.Cells(2 + emptyRow, 1 + num_sims), ws3.Cells(num_source_bins + 1 + emptyRow, 1 + num_sims)) GammaSetChart.Chart.SeriesCollection(1).XValues = GammaSetAxes Dim SimChart As Object Dim SimData As Range, SimAxes As Range 'Set SimChart = ws3.ChartObjects.Add(Left:=180, Width:=300, Top:=7, Height:=200) Set SimChart = ws3.Shapes.AddChart2 Set SimData = ws3.Range(ws3.Cells(4 + emptyRow + num_source_bins, num_sims + 3), ws3.Cells(4 + emptyRow + num_source_bins + num_sim_set_bins, num_sims + 3)) 'Set SimData = ws3.Range(ws3.Cells(2 + emptyRow, num_sims + num_sims2 + 2), ws3.Cells(2 + emptyRow + num_source_bins, num_sims + num_sims2 + 2)) SimChart.Chart.SetSourceData Source:=SimData Set SimAxes = ws3.Range(ws3.Cells(4 + emptyRow + num_source_bins, 1 + num_sims), ws3.Cells(3 + emptyRow + num_source_bins + y, 1 + num_sims)) 'Set GammaSetAxes = ws3.Range(ws3.Cells(2 + emptyRow, 1 + num_sims), ws3.Cells(num_source_bins + 1 + emptyRow, 1 + num_sims)) SimChart.Chart.SeriesCollection(1).XValues = SimAxes
内容的提问来源于stack exchange,提问作者kca062
相关产品推荐
相关产品推荐

