如何解决饼图的 SerieCollection(1).Point(2)“参数无效”问题
我在 Points(2) 的最后一行有问题,但 Points(1) 没有问题。它指出“参数无效”。 我找到的代码使用属性 Points,但我无法在线获取有关此属性的任何信息(Microsoft 文档),链接到 SerieCollection。
请注意,此代码有时会起作用。如果我点击一个按钮来创建另一个图表(折线图),那么点击另一个按钮来创建下面的饼图! (在这段代码之前我抹掉了之前的折线图)
' 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)
' 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,但没有帮助。
有什么想法吗? 谢谢
解决方法
见下文。应用变量,你会看到相关的智能感知。
你写的方式不适合图表点。
myPieChart1.Chart.SeriesCollection(1).Points(1).Interior.Color = RGB(198,239,206)
已编辑
我修改了您图表的代码。
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)
'.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,100)
.Format.TextFrame2.TextRange.Font.Size = 12
End With
Set pnt = .Points(1)
pnt.Format.Fill.ForeColor.RGB = RGB(198,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)
End With
End With
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。