Excel 如何从每周的星期一开始制作图表标签?

Excel 如何从每周的星期一开始制作图表标签?,excel,vba,Excel,Vba,我试图通过excel图表显示每周进度随时间的变化趋势。使用VBA,如何强制xlCategory轴的刻度标签捕捉到数据集中的每个星期一?这可能吗?我知道如何格式化轴,但不知道如何告诉它从每个星期一开始。谢谢 我知道有一个选项可以改变majorunit和minorunit,也许我可以用它们?这就是我到目前为止所做的: On Error Resume Next ActiveSheet.ChartObjects.Delete On Error GoTo 0 Set metricschart = sht

我试图通过excel图表显示每周进度随时间的变化趋势。使用VBA,如何强制xlCategory轴的刻度标签捕捉到数据集中的每个星期一?这可能吗?我知道如何格式化轴,但不知道如何告诉它从每个星期一开始。谢谢

我知道有一个选项可以改变majorunit和minorunit,也许我可以用它们?这就是我到目前为止所做的:

On Error Resume Next
ActiveSheet.ChartObjects.Delete
On Error GoTo 0

Set metricschart = sht.Shapes.AddChart.Chart

With metricschart
    .Parent.Name = "metricschart"
    .HasTitle = True
    .ChartTitle.Text = "Business Requirements Tested Over Time"
    .ChartTitle.Characters.Font.Size = 14
    .ChartType = xlXYScatterSmoothNoMarkers
    .SetSourceData Source:=sht2.Range("A1:DA2")
    .Location where:=xlLocationAsObject, Name:=sht.Name
    .Parent.Height = 325
    .Parent.Width = 600
    .Parent.Top = 70
    .Parent.Left = 350
    .Legend.LegendEntries(1).Delete
    .Axes(xlCategory).MinimumScale = sht2.Range("A1")
    .Axes(xlCategory).MaximumScale = sht2.Range("DA1")
    .Axes(xlCategory).TickLabels.NumberFormat = "m/d"
    .Axes(xlCategory).MajorUnit = vbMonday 'this doesn't work, shows way too many days
End With
上面的代码使轴如下(每2天):

以下是我的数据:

诀窍是将类别轴设置为时间刻度,确定起始值的星期一,并在每七天添加刻度

Sub Test()
Dim cht As Chart
Dim ax As Axis

Set cht = Worksheets(1).ChartObjects(1).Chart
Set ax = cht.Axes(xlCategory)

With ax
    .CategoryType = xlTimeScale 'For dates
    .MajorUnit = 7 'Only 1 tick every 7 days
    .AxisBetweenCategories = False 'Tick exactly on the date, not between the values.
    .CrossesAt = 42975 'the integer value of the date you wish to be the first one. In this case 2017-08-28.
End With

End Sub

您能显示您的工作表数据吗?“使用VBA”。。。到目前为止,你有什么代码?你卡在哪里?设置类别类型,主要单位为7,类别之间的轴正是我所需要的。在前面的代码中,我设置了MinimumScale和MaximumScale,以便在轴开始的时候进行设置。非常感谢。