2014-12-18 5 views
1

Я графический тренд для насоса в течение дня, я получаю выборки данных каждый менуэтVBA Excel Graphing добавления к оси X

я получил график все работает, но проблема я бегу в пытаясь получить время на оси 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». Есть ли способ иметь только 1 ярлык для каждых 60 пунктов или 120? Так что у меня нет такого яркого количества ярлыков?

ответ

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, и адаптируйте их к текущей диаграмме.

Смежные вопросы