我正在尝试使用堆积条形图在 Excel 2010 中创建路线图/时间线。我在下面提供了一张图片的链接,该图片应该可以用图表解释我的意图。我希望在图表中呈现不同的事件,并且应该根据它们的持续时间来绘制它们。事件越长,其相应的条越长。
我设法构建了一个宏来创建我喜欢的图表。但是,我希望为其添加另一个功能。从下图中可以看出,原来的表格中有一个名为“Type”的列。它代表事件的状态,无论是已完成、已取消还是正在计划中。我的目标是让图表通过将条形着色为红色(如果已取消)、绿色(如果已完成)或蓝色(如果已计划)来表示此数据,具体取决于所讨论的特定事件在其类型行中的值。
下面是按钮“创建新事件视图”使用的宏背后的代码。我想知道如何实现着色,最好是在这个相同的宏中,这样用户只需要点击按钮。
Sub CreateEventTable()
Dim timespan_start As Date
Dim timespan_end As Date
timespan_start = Application.InputBox("Type start date:")
timespan_end = Application.InputBox("Type end date:")
ActiveSheet.Shapes.AddChart(xlBarStacked, Range("E2").Left, Range("E2").Top).Select
With ActiveChart
.SetSourceData Source:=Range("$A$1:$B$12, $D$1:$D$12"), PlotBy:=xlColumns
.SeriesCollection(1).Values = Range("B2:B12")
.SeriesCollection(1).XValues = Range("A2:A12")
.SetElement msoElementLegendNone
.ChartGroups(1).GapWidth = 31
.SeriesCollection(2).ApplyDataLabels
.SeriesCollection(2).DataLabels.ShowCategoryName = True
.SeriesCollection(2).DataLabels.ShowValue = False
.SeriesCollection(1).Format.Fill.Visible = msoFalse
.Axes(xlValue).MinimumScale = timespan_start
.Axes(xlValue).MaximumScale = timespan_end
End With
End Sub
这是图像的链接,希望能解释整体结构:
http://i.imgur.com/XzPoMiY.jpg
感谢您的宝贵帮助!如果认为有必要,我很乐意提供更多详细信息。