Excel 如何为堆叠条形图选择.SetSourceData的范围?
我想为堆叠条形图的.SetSourceData选择范围 我的射程是不连续的。开始日期在G列,其余数字在V列到AI列中计算 目前,这只是绘制V列到AI列的图表,它使用G列作为水平轴标签 我尝试将横轴标签范围(列E)作为第一个.range参数添加到Union,但它随后将列E&F(不确定F来自何处)显示为横轴标签。没有找到G列 是否有办法使用SetSourceData执行此操作,或者我必须为所有15个系列单独设置SeriesCollectionExcel 如何为堆叠条形图选择.SetSourceData的范围?,excel,vba,charts,Excel,Vba,Charts,我想为堆叠条形图的.SetSourceData选择范围 我的射程是不连续的。开始日期在G列,其余数字在V列到AI列中计算 目前,这只是绘制V列到AI列的图表,它使用G列作为水平轴标签 我尝试将横轴标签范围(列E)作为第一个.range参数添加到Union,但它随后将列E&F(不确定F来自何处)显示为横轴标签。没有找到G列 是否有办法使用SetSourceData执行此操作,或者我必须为所有15个系列单独设置SeriesCollection Sub Create_Chart() ' ' Creat
Sub Create_Chart()
'
' Create_Chart Macro
'
Dim ganttChart As ChartObject
Dim sourceRange As Range
With Sheets("Projects")
Set sourceRange = Union(.Range("G1:G70"), .Range("V1:AI70"))
End With
Set ganttChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
With ganttChart
With .Chart
.ChartType = xlBarStacked
.Legend.Delete
.Parent.Width = 1224
.Parent.Height = 828
.SetSourceData Source:=sourceRange, PlotBy:=xlColumns
.Location Where:=xlLocationAsNewSheet
With .Axes(xlValue)
'.MinimumScale = 41428
'.MaximumScale = 41607
.MajorUnit = 7
.TickLabels.NumberFormat = "m/d"
.TickLabels.Font.Size = 6
.TickLabels.Font.Name = "Calibri"
End With
With .Axes(xlCategory)
.ReversePlotOrder = True
.TickLabelSpacing = 1
.TickLabels.NumberFormat = "@"
.TickLabels.Font.Size = 6
.TickLabels.Font.Name = "Calibri"
End With
End With
End With
End Sub
您可以在插入图表之前尝试选择源区域。Excel一开始可能使用正确的范围,因此不需要定义源数据 另一种方法是一次添加一个系列:
Set ganttChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
' clean up first
' i declared as long
For i = 1 to ganttChart.SeriesCollection.Count
ganttChart.SeriesCollection(1).Delete
Next
' rColumn declared as range
For Each rColumn In Sheets("Projects").Range("V1:AI70").Columns
With ganttChart.NewSeries
.Values = rColumn
.XValues = Sheets("Projects").Range("G1:G70")
End With
Next