图表轴标签格式vba设置

我正在写vb脚本来生成图表。 在X轴上,我有Y轴上的date和温度。

在X轴上,我想用格式“dd-mm”表示时间。 我的数据如下所示:

2014-06-17 01:00 2014-06-17 02:00 2014-06-17 03:00 2014-06-17 04:00 2014-06-17 05:00 2014-06-17 06:00 2014-06-17 07:00 2014-06-17 08:00 2014-06-17 09:00 

这就是我迄今为止在vb脚本中所写的内容:

  With chtChart.Chart .HasTitle = True .ChartTitle.Text = sheetName & vbCr & "2014" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Date" .Axes(xlCategory, xlPrimary).CategoryType = xlTimeScale .Axes(xlCategory, xlPrimary).MinimumScaleIsAuto = True .Axes(xlCategory, xlPrimary).MaximumScaleIsAuto = True .Axes(xlCategory, xlPrimary).TickLabels.NumberFormat = "dd-mm" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperature [C]" End With 

不幸的是,当我生成图表时,整个date值(例如2014-06-07 01:00)正被应用于X轴。

任何关于如何修复我所拥有的想法/想法?

更新:

整个代码来创build图表:

 Function AddChartSheet(sheetName As String, title As String) As Boolean Dim ws As Worksheet Dim chtChart As ChartObject Dim measDataSheetName As String 'Create a new chart. measDataSheetName = sheetName & "_measurements.csv" Dim Lastrow As Integer Dim seriesNames() As String ActiveWorkbook.Sheets.Add.name = sheetName & " chart" Set ws = ActiveWorkbook.Sheets(sheetName & " chart") Set chtChart = ActiveSheet.ChartObjects.Add(Left:=25, Top:=25, _ Width:=700, Height:=500) With chtChart .name = sheetName End With Lastrow = ActiveWorkbook.Sheets(measDataSheetName).Cells(ActiveWorkbook.Sheets(measDataSheetName).Rows.Count, "P").End(xlUp).Ro With chtChart.Chart .HasTitle = True .ChartTitle.Text = sheetName & vbCr & "2014" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Date" .Axes(xlCategory, xlPrimary).CategoryType = xlTimeScale .Axes(xlCategory, xlPrimary).MinimumScaleIsAuto = True .Axes(xlCategory, xlPrimary).MaximumScaleIsAuto = True .Axes(xlCategory, xlPrimary).TickLabels.NumberFormat = "dd-mm" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperature [C]" End With With chtChart.Chart.SeriesCollection.NewSeries .name = "Supply" .ChartType = xlXYScatterSmoothNoMarkers .XValues = Worksheets(measDataSheetName).Range("P2:P" & Lastrow) '. SelectRange("C3", Range("C3").End(xlDown)) .Values = Worksheets(measDataSheetName).Range("T2:T" & Lastrow) End With With chtChart.Chart.SeriesCollection.NewSeries .name = "Return" .ChartType = xlXYScatterSmoothNoMarkers .XValues = Worksheets(measDataSheetName).Range("P2:P" & Lastrow) '. SelectRange("C3", Range("C3").End(xlDown)) .Values = Worksheets(measDataSheetName).Range("U2:U" & Lastrow) End With AddChartSheet = True End Function 

好的,我find了解决办法:发送数据后添加格式:

  With chtChart.Chart .HasTitle = True .ChartTitle.Text = sheetName & vbCr & "2014" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Date" .Axes(xlCategory, xlPrimary).CategoryType = xlTimeScale .Axes(xlCategory, xlPrimary).MinimumScaleIsAuto = True .Axes(xlCategory, xlPrimary).MaximumScaleIsAuto = True .Axes(xlCategory, xlPrimary).TickLabels.NumberFormat = "dd-mm" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperature [C]" End With With chtChart.Chart.SeriesCollection.NewSeries .name = "Supply" .ChartType = xlXYScatterSmoothNoMarkers .XValues = Worksheets(measDataSheetName).Range("P2:P" & Lastrow) '. SelectRange("C3", Range("C3").End(xlDown)) .Values = Worksheets(measDataSheetName).Range("T2:T" & Lastrow) End With With chtChart.Chart .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Date" .Axes(xlCategory, xlPrimary).TickLabels.NumberFormat = "dd-mm" End With 

它解决了。