0
Dim cht As Chart
Dim Xleft As Double, Ytop As Double
Xleft = cht.PlotArea.InsideLeft
我在第三行发现此错误。有谁知道为什么?excel:对象变量或块变量未设置
这里是完整的代码。请记住,这是excel 2003
Sub DrawSmoothTransparentShapesOnRadarChart()
Dim cht As Chart
Set cht = Worksheets(1).ChartObjects(1)
Dim srs As Series
Dim iSrs As Long
Dim Npts As Integer, Ipts As Integer
Dim myShape As Shape
Dim Xnode As Double, Ynode As Double
Dim Rmax As Double, Rmin As Double
Dim Xleft As Double, Ytop As Double
Dim Xwidth As Double, Yheight As Double
Dim dPI As Double
Dim iFillColor As Long
Dim iLineColor As Long
Set cht = ActiveChart
Xleft = cht.PlotArea.InsideLeft
Xwidth = cht.PlotArea.InsideWidth
Ytop = cht.PlotArea.InsideTop
Yheight = cht.PlotArea.InsideHeight
Rmax = cht.Axes(2).MaximumScale
Rmin = cht.Axes(2).MinimumScale
dPI = WorksheetFunction.Pi()
For iSrs = 1 To cht.SeriesCollection.Count
Set srs = cht.SeriesCollection(iSrs)
Select Case srs.ChartType
Case xlRadar, xlRadarFilled, xlRadarMarkers
Npts = srs.Points.Count
Xnode = Xleft + Xwidth/2 * _
(1 + (srs.Values(Npts) - Rmin)/(Rmax - Rmin) _
* Sin(2 * dPI * (Npts - 1)/Npts))
Ynode = Ytop + Yheight/2 * _
(1 - (srs.Values(Npts) - Rmin)/(Rmax - Rmin) _
* Cos(2 * dPI * (Npts - 1)/Npts))
With cht.Shapes.BuildFreeform _
(msoEditingAuto, Xnode, Ynode)
For Ipts = 1 To Npts
Xnode = Xleft + Xwidth/2 * _
(1 + (srs.Values(Ipts) - Rmin)/(Rmax - Rmin) _
* Sin(2 * dPI * (Ipts - 1)/Npts))
Ynode = Ytop + Yheight/2 * _
(1 - (srs.Values(Ipts) - Rmin)/(Rmax - Rmin) _
* Cos(2 * dPI * (Ipts - 1)/Npts))
.AddNodes msoSegmentLine, msoEditingAuto, _
Xnode, Ynode
Next
Set myShape = .ConvertToShape
End With
For Ipts = 1 To Npts
myShape.Nodes.SetEditingType 3 * Ipts - 2, msoEditingSmooth
Next
Select Case iSrs
Case 1
iFillColor = 44
iLineColor = 12
Case 2
iFillColor = 45
iLineColor = 10
Case 3
iFillColor = 43
iLineColor = 17
End Select
With myShape
.Fill.ForeColor.SchemeColor = iFillColor
.Line.ForeColor.SchemeColor = iLineColor
.Line.Weight = 1.5
.Fill.Transparency = 0.5
End With
End Select
Next
End Sub
我该怎么做? – 2009-12-17 23:09:02
我已添加注释 – Fionnuala 2009-12-17 23:17:47
它表示无法获得工作表类的chartobjects属性 – 2009-12-17 23:27:14