给你代码Public Function AreaFromPoint(Point As Variant) As Double Dim dblX As Double Dim dblY As Double Dim dblX_Stock As Double Dim dblY_Stock As Double Dim k As Double Dim dblDaikei As Double AreaFromPoint = 0 dblDaikei = 0 For k = LBound(Point) To UBound(Point) Step 2 If k = 0 Then dblX = Point(k) dblY = Point(k + 1) dblX_Stock = Point(k) dblY_Stock = Point(k + 1) ElseIf k = UBound(Point) - 1 Then dblDaikei = dblDaikei + ((Point(k + 1) + dblY) * (Point(k) - dblX)) AreaFromPoint = (dblDaikei + ((dblY_Stock + Point(k + 1)) * (dblX_Stock - Point(k)))) / 2000000 Else dblDaikei = dblDaikei + ((Point(k + 1) + dblY) * (Point(k) - dblX)) dblX = Point(k) dblY = Point(k + 1) End If Next k End Function
Dim dblX As Double
Dim dblY As Double
Dim dblX_Stock As Double
Dim dblY_Stock As Double
Dim k As Double
Dim dblDaikei As Double
AreaFromPoint = 0
dblDaikei = 0
For k = LBound(Point) To UBound(Point) Step 2
If k = 0 Then
dblX = Point(k)
dblY = Point(k + 1)
dblX_Stock = Point(k)
dblY_Stock = Point(k + 1)
ElseIf k = UBound(Point) - 1 Then
dblDaikei = dblDaikei + ((Point(k + 1) + dblY) * (Point(k) - dblX))
AreaFromPoint = (dblDaikei + ((dblY_Stock + Point(k + 1)) * (dblX_Stock - Point(k)))) / 2000000
Else
dblDaikei = dblDaikei + ((Point(k + 1) + dblY) * (Point(k) - dblX))
dblX = Point(k)
dblY = Point(k + 1)
End If
Next k
End Function