VBA Excel图形为X轴添加时间

时间:2014-12-18 17:14:31

标签: excel vba excel-vba datetime

我正在绘制一天泵的趋势,我每小步都会得到一个样本数据

我得到的图表全部正常工作,但我遇到的问题是试图让时间在X轴上。有一列显示每个样本数据的采集时间,但是当我尝试添加它时,它会为图表中的每个点设置时间。因为我在图表中有1440个点,它只是一小段难以理解的文本,我删除了那些代码,现在我没有。但我想弄清楚。

    'Chart for Monday
    With wBM.ActiveSheet.ChartObjects.Add(Left:=300, Width:=300, Top:=10, Height:=300)
    .Chart.SetSourceData Source:=wBM.ActiveSheet.Range("B1:B1440"), PlotBy:=xlColumns
    .Chart.ChartType = xlLine
    .Left = rngChart2.Left
    .Top = rngChart2.Top
    .Width = rngChart2.Width
    .Height = rngChart2.Height
    .Chart.HasTitle = True
    .Chart.ChartTitle.Text = "Monday " & Monday
    .Chart.HasLegend = False
    End With

到目前为止,这是我的代码。在D列中有每个点的时间,因此它将是" D1:D1440"。 有没有办法每60个点只有1个标签,或120?所以我没有这么多标签?

1 个答案:

答案 0 :(得分:0)

从示例如下的示例数据开始:

enter image description here

我运行此宏来隐藏所有标记位置'不是5的倍数

Sub formateDataLabels()
    Dim chrt As Chart
    Set chrt = ActiveChart

    Dim cnt As Long: cnt = 1

    For Each lbl In chrt.SeriesCollection(1).DataLabels
        If cnt Mod 5 <> 0 Then
            lbl.Text = ""
        End If

        cnt = cnt + 1
    Next lbl
End Sub

结果:

enter image description here


请注意,当前代码只是设置为在选定的图表上运行。将5更改为您需要的任何内容,例如50或100,并适应您当前的图表。