2013-11-22 2 views
1

Я прошу намек со следующей проблемой. Как добавить к указанным ячейкам фигуры из активной таблицы? Я могу добавить форму, когда я знаю имя, но не знаю, как реализовать Forumla для каждой формы в ...Как вставить фигуру в указанную ячейку, используя «для каждой фигуры в activesheet.shapes» в excel vba

В настоящее время у меня есть что-то вроде этого:

Sub loop() 

Dim a As Integer 
Dim b As Integer 
Dim c As Integer 

For a = 1 To 10 
    For b = 1 To 10 

     ActiveSheet.Shapes.AddShape("Shape_Name", Cells(a, b), Cells(j, k), 10).Select 

    Next a 
Next b 
End Sub 

Но мне нужно что-то с помощью это:

For Each Shape In ActiveSheet.Shapes 
+0

Как вы можете обратиться к форме в цикле, когда он еще не добавил? –

ответ

3

Я не уверен, что вам нужно, но попробовать это

Dim shp As Shape 

For Each shp In ActiveSheet.Shapes 
    Debug.Print shp.Name 
Next 

это только итерация по коллекция Shapes. Поэтому вам нужно иметь формы для доступа к ним => логические.

Если вы пытаетесь добавить фигуры, вы не можете использовать for each в .Shapes, так как коллекция .Shapes была бы пуста.


Поэтому, как только вы знаете формы вы можете назвать

Sheets("Sheet1").Shapes("Rectangle 1").Copy 
Sheets("Sheet2").Select 
Range("B2").Select 
Sheets(2).Paste 
+0

'Если вы пытаетесь добавить фигуры, вы не можете использовать их для каждого в .Shapes, поскольку коллекция .Shapes была бы пустой.' So very true :) –

+0

Ok. Итак, что, если у меня есть фигуры на одном листе и вы хотите использовать их в другом листе? – Ascorpio

+0

вам нужно квалифицировать лист, чтобы заменить «ActiveSheet.Shapes» на «Таблицы» («Имя листа»). Shapes' перебирать коллекцию фигур в «Имя листа». Что вы имеете в виду, вы хотите использовать их *? –