这是我的VBA代码。 我正在绘制一个图表,在该图表上显示一系列值。 我想在图表的X轴上显示年份和季度。
Sub VBAChart2()
Dim colunmA As Integer
colunmA = Range("B1").End(xlToRight).Column - 1
Dim Num As Integer
Dim xrng As Range
Set xrng = Range("C2:F2")
back:
Num = InputBox("àéæå ùåøä ìäöéâ áâøó?")
If colunmA > Num And Num > 0 Then
ActiveSheet.Shapes.AddChart2(201, xlXYScatterLines, Range("L10").Left, Range("L10").Top, 450, 200).Select
With ActiveChart
.SetSourceData Source := Range(Range("B2").Offset(0, Num - 1), Range("C3:C6").Offset(0, Num - 1))
.SetElement(msoElementDataLabelTop)
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "ùðä åøáòåï"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "îëø SO"
.SeriesCollection(1).XValues = xrng
.SeriesCollection(1).Values = Range("C1:F2")
End With
Else: MsgBox("ðà ìä÷ìéã îñôø ùåøä äîåôéò áèáìä")
GoTo back
End If
End Sub
答案 0 :(得分:0)
我认为您的建议是不可能的。我不知道有什么简便的方法可以简单地将某些日期/范围设置为xvalues
并让Excel自动推断季度。
但是,如果您不限于xlXYScatterLines
图表类型,并且可以随意在源数据(在工作表上)中添加其他图表类型,则可以尝试以下操作。
如果我这样创建一些虚拟数据(黄色单元格为x values
,绿色单元格为values
):
,然后使用下面的代码(指的是上图中的范围/单元格):
Option Explicit
Sub PlotQuarterAndYears()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
With ws.Shapes.AddChart2(201, xlLine, ws.Range("L10").Left, ws.Range("L10").Top, 450, 200).Chart
.ChartTitle.Text = "Some chart"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "ùðä åøáòåï"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Text = "îëø SO"
With .SeriesCollection.NewSeries
.XValues = ws.Range("C2:F3")
.Values = ws.Range("C4:F4")
End With
End With
End Sub
然后我得到这个:
似乎正是您所描述的。显然,您需要适应自己的源数据/范围/工作表,但是主要的收获是将xvalues
放在两行中并绘制折线图。
答案 1 :(得分:-1)
不幸的是,Excel图表不够灵活。您最终得到一个标记为“均匀”的X轴,这仅仅是所显示内容的问题,例如“ 2015,2016,2017,2018”或“ 2015Q1、2015Q2、2015Q3 ...”或其他任何内容- -一个轴,仅一系列轴标签。是的,Excel不是最好的制图工具:(
另一种可能性(顺便说一句,我非常不喜欢……)是拥有两个Y轴,这将为您提供两个X轴。但是,它们最终会排在图表的顶部和底部(如此处https://superuser.com/questions/188064/excel-chart-with-two-x-axes-horizontal-possible所述)。