|
回复 喜欢学习编程 的帖子
线的起点终点太麻烦了,变通了下来都还不满意,还没考虑行的变化
ActiveSheet.Lines.Delete
ActiveSheet.Ovals.Delete
stra = Split(Cells([j2], "l"), "+")
For i = 0 To UBound(stra)
With ActiveSheet.Shapes.AddShape(msoShapeOval, Range(stra(i)).Left, Range(stra(i)).Top, Range(stra(i)).Width, Range(stra(i)).Height) 'Ìí¼ÓÔ° msoShapeOvalÍÖÔ²ÐÎ
.Fill.Transparency = 1
End With
If i Then
If Range(stra(i)).Column > Range(stra(i - 1)).Column Then
ActiveSheet.Shapes.AddLine Range(stra(i - 1))(1, 2).Left, Range(stra(i - 1)).Top + Range(stra(i - 1)).Height / 2, Range(stra(i)).Left, Range(stra(i)).Top + Range(stra(i)).Height / 2
ElseIf Range(stra(i)).Column = Range(stra(i - 1)).Column Then
ActiveSheet.Shapes.AddLine Range(stra(i - 1)).Left + Range(stra(i - 1)).Width / 2, Range(stra(i - 1)).Top + Range(stra(i - 1)).Height, Range(stra(i)).Left + Range(stra(i)).Width, Range(stra(i)).Top
Else
ActiveSheet.Shapes.AddLine Range(stra(i))(1, 2).Left, Range(stra(i)).Top + Range(stra(i)).Height / 2, Range(stra(i - 1)).Left, Range(stra(i - 1)).Top + Range(stra(i - 1)).Height / 2
End If
End If
Next
stra = Split(Cells([j2], "p"), "+")
For i = 0 To UBound(stra)
With ActiveSheet.Shapes.AddShape(msoShapeOval, Range(stra(i)).Left, Range(stra(i)).Top, Range(stra(i)).Width, Range(stra(i)).Height) 'Ìí¼ÓÔ° msoShapeOvalÍÖÔ²ÐÎ
.Fill.Transparency = 1
End With
If i Then
If Range(stra(i)).Column > Range(stra(i - 1)).Column Then
ActiveSheet.Shapes.AddLine Range(stra(i - 1))(1, 2).Left, Range(stra(i - 1)).Top + Range(stra(i - 1)).Height / 2, Range(stra(i)).Left, Range(stra(i)).Top + Range(stra(i)).Height / 2
ElseIf Range(stra(i)).Column = Range(stra(i - 1)).Column Then
ActiveSheet.Shapes.AddLine Range(stra(i - 1)).Left + Range(stra(i - 1)).Width / 2, Range(stra(i - 1)).Top + Range(stra(i - 1)).Height, Range(stra(i)).Left + Range(stra(i)).Width, Range(stra(i)).Top
Else
ActiveSheet.Shapes.AddLine Range(stra(i))(1, 2).Left, Range(stra(i)).Top + Range(stra(i)).Height / 2, Range(stra(i - 1)).Left, Range(stra(i - 1)).Top + Range(stra(i - 1)).Height / 2
End If
End If
Next
End Sub
|
|