0

这应该很容易,但我无法弄清楚语法。我想将 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"

4

1 回答 1

2

尝试这个:

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

如果工作表中有空格.Name,您之前的尝试将构造一个格式错误的公式,这将导致错误,例如:

=My Worksheet!A1:B1是会导致#Name?错误的无效引用。当工作表名称包含空格时,您需要将名称用单引号引起来。因此,与其尝试找出何时需要这样做,不如始终使用单引号来避免此错误。

于 2013-06-18T16:05:21.773 回答