Jamie McMillan
Board Regular
- Joined
- Nov 8, 2021
- Messages
- 169
- Office Version
- 2016
- Platform
- Windows
Hello,
I have been using VBA for years, self taught. But I haven't been using loops, etc. (I can generate some simple loops): but I cannot loop through shapes by there name.
The shapes are named, a, b, c, .... Others are named, 1 , 2, 3, ...
Part of the code
ActiveSheet.Shapes.Range(Array("a")).Left = Cells(Range("v1").Value, Range("w1").Value).Left
ActiveSheet.Shapes.Range(Array("a")).Top = Cells(Range("v1").Value, Range("w1").Value).Top
ActiveSheet.Shapes.Range(Array("b")).Left = Cells(Range("v2").Value, Range("w2").Value).Left
ActiveSheet.Shapes.Range(Array("b")).Top = Cells(Range("v2").Value, Range("w2").Value).Top
ActiveSheet.Shapes.Range(Array("c")).Left = Cells(Range("v3").Value, Range("w3").Value).Left
ActiveSheet.Shapes.Range(Array("c")).Top = Cells(Range("v3").Value, Range("w3").Value).Top
ActiveSheet.Shapes.Range(Array("d")).Left = Cells(Range("v4").Value, Range("w4").Value).Left
I just copy and paste then manually renames the relevant parts.
I need, Array("a"), Range("v1") & Range("w1") set as variables.
I have tried to many things.
Thank you for any help.
I have been using VBA for years, self taught. But I haven't been using loops, etc. (I can generate some simple loops): but I cannot loop through shapes by there name.
The shapes are named, a, b, c, .... Others are named, 1 , 2, 3, ...
Part of the code
ActiveSheet.Shapes.Range(Array("a")).Left = Cells(Range("v1").Value, Range("w1").Value).Left
ActiveSheet.Shapes.Range(Array("a")).Top = Cells(Range("v1").Value, Range("w1").Value).Top
ActiveSheet.Shapes.Range(Array("b")).Left = Cells(Range("v2").Value, Range("w2").Value).Left
ActiveSheet.Shapes.Range(Array("b")).Top = Cells(Range("v2").Value, Range("w2").Value).Top
ActiveSheet.Shapes.Range(Array("c")).Left = Cells(Range("v3").Value, Range("w3").Value).Left
ActiveSheet.Shapes.Range(Array("c")).Top = Cells(Range("v3").Value, Range("w3").Value).Top
ActiveSheet.Shapes.Range(Array("d")).Left = Cells(Range("v4").Value, Range("w4").Value).Left
I just copy and paste then manually renames the relevant parts.
I need, Array("a"), Range("v1") & Range("w1") set as variables.
I have tried to many things.
Thank you for any help.