![]() |
How do i read Selection.Shapes.Range(Array(i)?
I'm writing a macro that will rearrange a group of selected drawn rectangles.
I need to select the rectangles and execute the macro which will modify an array that contains the rectangle coordinates. The rectangles will be deleted and redrawn in their new positions. Stacking random boxes may be a better way to put it. capturing the selection gives me: ActiveSheet.Shapes.Range(Array(" 62", " 63", " 64", " 65" _ , " 66", " 67")).Select The macro i'm trying to execute is: Dim mr(100) With Selection num = .Count ' return number of rectangles (this works) for i = 1 to num sr = .Item(i) ' this should return " 62" but it doesn't :( need help here) mr(i) = Val(sr) Next i End With Any help or ideas would be greatly appreciated. -- Best Regards, Harry |
How do i read Selection.Shapes.Range(Array(i)?
Hi Harry,
The following worked for me: '================== Public Sub Tester2() Dim mr() Dim i As Long Dim num As Long Dim sStr As String Dim myShapeRange As ShapeRange Set myShapeRange = Selection.ShapeRange With myShapeRange num = .Count ReDim mr(1 To num) For i = 1 To num sStr = .Item(i).Name mr(i) = Val(sStr) Next i End With End Sub '<<================== --- Regards, Norman "Harry" wrote in message ... I'm writing a macro that will rearrange a group of selected drawn rectangles. I need to select the rectangles and execute the macro which will modify an array that contains the rectangle coordinates. The rectangles will be deleted and redrawn in their new positions. Stacking random boxes may be a better way to put it. capturing the selection gives me: ActiveSheet.Shapes.Range(Array(" 62", " 63", " 64", " 65" _ , " 66", " 67")).Select The macro i'm trying to execute is: Dim mr(100) With Selection num = .Count ' return number of rectangles (this works) for i = 1 to num sr = .Item(i) ' this should return " 62" but it doesn't :( need help here) mr(i) = Val(sr) Next i End With Any help or ideas would be greatly appreciated. -- Best Regards, Harry |
How do i read Selection.Shapes.Range(Array(i)?
Norman,
Thanks a million, it works like a charm!! -- Best Regards, Harry "Norman Jones" wrote: Hi Harry, The following worked for me: '================== Public Sub Tester2() Dim mr() Dim i As Long Dim num As Long Dim sStr As String Dim myShapeRange As ShapeRange Set myShapeRange = Selection.ShapeRange With myShapeRange num = .Count ReDim mr(1 To num) For i = 1 To num sStr = .Item(i).Name mr(i) = Val(sStr) Next i End With End Sub '<<================== --- Regards, Norman "Harry" wrote in message ... I'm writing a macro that will rearrange a group of selected drawn rectangles. I need to select the rectangles and execute the macro which will modify an array that contains the rectangle coordinates. The rectangles will be deleted and redrawn in their new positions. Stacking random boxes may be a better way to put it. capturing the selection gives me: ActiveSheet.Shapes.Range(Array(" 62", " 63", " 64", " 65" _ , " 66", " 67")).Select The macro i'm trying to execute is: Dim mr(100) With Selection num = .Count ' return number of rectangles (this works) for i = 1 to num sr = .Item(i) ' this should return " 62" but it doesn't :( need help here) mr(i) = Val(sr) Next i End With Any help or ideas would be greatly appreciated. -- Best Regards, Harry |
All times are GMT +1. The time now is 08:36 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com