这应该很容易,但我无法弄清楚语法。我想将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"
,因为代码生成了大量的工作表,而不是所有工作表都命名为内容。相反,我需要它从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"
答案 0 :(得分:2)
试试这个:
.SeriesCollection(1).XValues = "='" & new_sheet.Name & "'!$B$8:$B$12"
如果工作表.Name
中有空格,您之前的尝试将构造格式错误的公式,这会导致错误,例如:
=My Worksheet!A1:B1
是无效的引用,会导致#Name?
错误。当工作表名称包含空格时,您需要将名称括在单引号中。因此,不要试图找出何时需要,只需使用单引号来避免此错误。