1

我使用 Excel VBA 创建了一个图表,我想调整线条颜色和 x 轴间隔。

下面是代码:

Sub add_cpu_chart(server_hostname, site)
    On Error Resume Next

    Dim rpt_site As String
    rpt_site = site

    Set tbl = ThisWorkbook.Sheets(server_hostname).ListObjects(1)
    strTableName = tbl.Name
    strTableRange = tbl.Range.Address

    Dim m_s_name, m_e_name As Date

    m_s_name = CDate(fromDateStr)
    m_e_name = CDate(toDateStr)

    'Create new embedded chart
    Set shp = ThisWorkbook.Sheets(server_hostname).Shapes.AddChart

    'Position Shape over range

    shp.Top = 100
    shp.Left = 200

    With shp
        With .Chart
            'Specify source data and orientation
            '.SetSourceData Source:=ActiveSheets.Range(Table1 & "[#All]"), _
            'PlotBy:=xlRows
            .SetSourceData Source:=ThisWorkbook.Sheets(server_hostname).Range(strTableName & "[#All]")
            .ChartType = xlLineMarkers
            .SetElement (msoElementChartTitleAboveChart)
            .HasTitle = True
            .ChartTitle.Text = "CPU Utilization of " & server_hostname & " in " & _
            rpt_site & " (" & Format(m_s_name, "dd-Mmm") & " to " & Format(m_e_name, "dd-Mmm yyyy") & ")"
            .ChartTitle.Font.Size = 14
            '.ChartArea.Font.Size = 14
            .Legend.Delete

            .SetElement (msoElementPrimaryValueAxisTitleRotated)
            .Axes(xlValue, xlPrimary).AxisTitle.Text = "CPU Utlization (%)"
            .Axes(xlValue, xlPrimary).AxisTitle.Font.Size = 10
            .Axes(xlValue).MinimumScale = 0
            .Axes(xlValue).MinorUnit = 2
            .Axes(xlValue).MaximumScale = 100
            .Axes(xlValue).MajorUnit = 20
            .Axes(xlValue).TickLabels.NumberFormat = "General"

            .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
            .Axes(xlCategory, xlPrimary).AxisTitle.Text = "Date of the Month"
            .Axes(xlCategory, xlPrimary).AxisTitle.Font.Size = 10
            '.Axes(xlCategory).MajorUnit = 1
            .Axes(xlCategory).TickLabels.NumberFormat = "d"
            With .PlotArea.Format.Fill
                .Visible = msoTrue
                .ForeColor.ObjectThemeColor = msoThemeColorBackground1
                .ForeColor.TintAndShade = 0
                .ForeColor.Brightness = -0.150000006
                .Transparency = 0
                .Solid
            End With
        End With
    End With
End Sub

我想将线条颜色更改为红色 - 就像在 excel 2003 中一样 - 以及以 2 天的间隔更改数据。目前,数据的形式是1,2,3,4...我想在表单中显示数据1,3 ,5...

4

1 回答 1

6

在折线图中,X 轴的最小刻度、最大刻度、主要单位和次要单位是没有意义的。X 值只是类别,即使标签显示数字,也没有解释的数值。

您可能应该更改为 XY 图表,这将允许使用最小刻度、最大刻度、主要单位和次要单位完全控制轴刻度。当然,XY 图表允许使用与折线图中相同的系列标记和线条格式,但令人困惑的术语将永远存在。

如果出于某种原因您决定坚持使用折线图,您可以使用

ActiveChart.Axes(xlCategory).TickLabelSpacing = 2
于 2012-06-12T11:41:33.050 回答