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?
错误。 当工作表名称包含空格时,您需要用单引号括起名称。 所以,不要试图弄清楚什么时候需要,只要使用单引号就可以避免这个错误。