SerieCollection(1).Point(2)出现“参数无效"问题.饼图 [英] Issue with SerieCollection(1).Point(2) "parameter invalid" for a Pie Chart
问题描述
我在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屋!