这应该很容易,但我无法弄清楚语法。我想将 PieChart 的 X 值更改为等于 B8:B12 范围内的任何值。这是我设置饼图的代码。
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"
,因为代码会生成大量的 Worksheets,并非所有这些都被命名为 Content。相反,我需要它从 B8-B12 中获取图表所在工作表名称的 X 值。
如果有帮助,图表的父工作表的名称将保存在变量中new_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"