SerieCollection(1).Point(2)出现“参数无效"问题.饼图 [英] Issue with SerieCollection(1).Point(2) "parameter invalid" for a Pie Chart

查看:53
本文介绍了SerieCollection(1).Point(2)出现“参数无效"问题.饼图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Point(2)的最后一行有问题,但对于Point(1)没有问题.它指出参数无效".我找到的代码使用了Points属性,但是我无法在线获取有关链接到SerieCollection的此属性的任何信息(Microsoft文档).

I have an issue on the last line for Points(2), but not for Points(1). It states "parameter invalid". The code I found use the property Points, but I couldn't get any information online (Microsoft doc) about this property linked to SerieCollection.

请注意,此代码有时会起作用.如果我单击一个按钮来创建另一个图表(折线图),那么单击另一个按钮来创建下面的饼图是可行的!(在此代码之前,我擦除了之前的折线图)

Note this code is working sometimes. If I click a button to create another chart (Line chart), then the click on another button to create the pie chart below works! (Before this code I erase the previous Line chart)

' Create a Chart
Dim myPieChart1 As Shape
Set myPieChart1 = Sheet1.Shapes.AddChart2
myPieChart1.Name = "ProjectPercent"
' Chart size
myPieChart1.Chart.ChartArea.Left = 200
myPieChart1.Chart.ChartArea.Top = 180
myPieChart1.Chart.ChartArea.Width = 240
myPieChart1.Chart.ChartArea.Height = 240
myPieChart1.Chart.ChartArea.RoundedCorners = True
myPieChart1.Chart.ChartArea.Interior.Color = RGB(32, 55, 100)
' Pie Chart characteristic
myPieChart1.Chart.ChartType = xlPie
myPieChart1.Chart.SetSourceData Sheet1.Range("$G$10:$H$12")
myPieChart1.Chart.HasTitle = True
myPieChart1.Chart.ChartTitle.Caption = "Project Activity"
myPieChart1.Chart.ChartTitle.Font.Color = RGB(255, 255, 255)
myPieChart1.Chart.HasLegend = True
myPieChart1.Chart.Legend.Position = xlLegendPositionTop
myPieChart1.Chart.Legend.Font.Color = RGB(255, 255, 255)
' Chart labels
myPieChart1.Chart.ApplyDataLabels xlDataLabelsShowPercent
myPieChart1.Chart.SeriesCollection.NewSeries
myPieChart1.Chart.SeriesCollection(1).DataLabels.Position = xlLabelPositionBestFit
myPieChart1.Chart.SeriesCollection(1).DataLabels.Font.ColorIndex = 25
myPieChart1.Chart.SeriesCollection(1).DataLabels.Font.Size = 12
' Pie Chart colors
myPieChart1.Chart.SeriesCollection(1).Points(1).Interior.Color = RGB(198, 239, 206)
myPieChart1.Chart.SeriesCollection(1).Points(2).Interior.Color = RGB(255, 199, 206)

我添加了一行:myPieChart1.Chart.SeriesCollection.NewSeries,但这没有帮助.

I added the line: myPieChart1.Chart.SeriesCollection.NewSeries, but it didn't help.

有什么想法吗?谢谢

推荐答案

请参见下文.应用该变量,您将看到相关的智能感知.

See below. Apply the variable and you will see the relevant intellisense.

您的书写方式不适合图表点.

The way you wrote is inappropriate for chart points.

myPieChart1.Chart.SeriesCollection(1).Points(1).Interior.Color = RGB(198, 239, 206)

已编辑

我修改了您图表的代码.

Edited

I modified the code for your chart.

Sub creatChart()

    
    ' Create a Chart
    Dim Ws As Worksheet
    Dim myPieChart1 As Shape
    Dim Cht As Chart
    Dim Srs As Series
    Dim pnt As Point
    Dim Lbl As DataLabels
    
    Set Ws = Sheets(1)
    Set myPieChart1 = Ws.Shapes.AddChart2
    myPieChart1.Name = "ProjectPercent"
    ' Chart size
    Set Cht = myPieChart1.Chart
        
    With Cht
        With .ChartArea
            .Left = 200
            .Top = 180
            .Width = 240
            .Height = 240
            .RoundedCorners = True
            .Format.Fill.ForeColor.RGB = RGB(32, 55, 100)
        End With
        .ChartType = xlPie
        .SetSourceData Ws.Range("$G$10:$H$12")
        .HasTitle = True
        .ChartTitle.Caption = "Project Activity"
        .ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 255, 255)
        .HasLegend = True
        .Legend.Position = xlLegendPositionTop
        .Legend.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 255, 255)
        '.ApplyDataLabels xlDataLabelsShowLabelAndPercent
        
        Set Srs = .SeriesCollection(1)
        With Srs
            .ApplyDataLabels xlDataLabelsShowLabelAndPercent
            Set Lbl = .DataLabels
            '.DataLabels.Position = xlLabelPositionBestFit
            Set Lbl = .DataLabels
            With Lbl
                .Position = xlLabelPositionBestFit
                .Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(32, 55, 100)
                .Format.TextFrame2.TextRange.Font.Size = 12
            End With
                
            Set pnt = .Points(1)
                pnt.Format.Fill.ForeColor.RGB = RGB(198, 239, 206)
            Set pnt = .Points(2)
                pnt.Format.Fill.ForeColor.RGB = RGB(255, 199, 206)
        End With
    End With
        
End Sub

Sub test1()
    Dim Cht As Chart
    Dim objCht As ChartObject
    Dim Ws As Worksheet
    Dim Srs As Series
    Dim pnt As Point
    
    Set Ws = ActiveSheet
    Set objCht = Ws.ChartObjects(1)
    Set Cht = objCht.Chart
    
    With Cht
        Set Srs = .SeriesCollection(1)
        With Srs
            Set pnt = .Points(2)
            pnt.Format.Fill.ForeColor.RGB = RGB(100, 0, 0)
        End With
    End With
End Sub

这篇关于SerieCollection(1).Point(2)出现“参数无效"问题.饼图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆