VBA-将饼图的X值更改为非活动工作表中的范围

这应该是非常容易的,但我无法弄清楚语法。 我想改变PieChart的X值等于B8:B12范围内的值。 这是我设置PieChart的代码。

Set pie_chart = Charts.Add() With pie_chart .ChartType = xlPie .SetSourceData Source:=new_sheet.Range("C2:C" & _ num_bins + 1), _ PlotBy:=xlColumns .Location Where:=xlLocationAsObject, _ Name:=new_sheet.Name End With With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = title .ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent, LegendKey _ :=False, HasLeaderLines:=True .SeriesCollection(1).DataLabels.NumberFormat = "0.0%" .FullSeriesCollection(1).XValues = "=Content!$B$8:$B$12" End With 

需要更改的行是.FullSeriesCollection(1).XValues = "Content!$B$8:$B$12" ,因为代码会生成大量的工作表,而不是所有的都被命名为Content。 相反,我需要它从B8-B12中获取任何工作表名称所在的图表所在的X值。

如果有帮助,图表的父表的名称保存在variablesnew_sheet

我尝试了.FullSeriesCollection(1).XValues="new_sheet.Name!$B$8:$B$12".FullSeriesCollection(1).XValues=new_sheet.Name&"!$B$8:$B$12"

我不知道为什么这不起作用: .FullSeriesCollection(1).XValues = "=" & new_sheet.Name & "!$B$8:$B$12"

尝试这个:

.SeriesCollection(1).XValues = "='" & new_sheet.Name & "'!$B$8:$B$12"

如果工作表.Name有任何空格,则以前的尝试将构造格式不正确的公式,这将导致错误,例如:

=My Worksheet!A1:B1是一个无效的参考,这将导致#Name? 错误。 当工作表名称包含空格时,您需要用单引号括起名称。 所以,不要试图弄清楚什么时候需要,只要使用单引号就可以避免这个错误。