在命名范围中设置variables(循环)

我想调用带有某种循环的命名范围让我们假设我有表:

2个命名范围
2个形状
[namedrange1]设置为A1
[namedrange2]设置为A2
范围A1的值是1
范围A2的值是2
第一个形状被命名为shape1
第二个形状被命名为shape2

我想用形状做一些事情,比如移动它们,我可以这样做:

Sub moveshapes() ActiveSheet.Shapes("shape" & [namedrange1]).Top = Cells(3, 3).Top ActiveSheet.Shapes("shape" & [namedrange2]).Top = Cells(3, 3).Top End Sub 

但我不想这样做。 如果我喜欢100个形状呢? 我需要在名称范围NAME中使用某种带有variables的循环。 我试过下面的代码,但它不工作..

 Sub moveshapes() Dim i As Integer For i = 1 To 2 ActiveSheet.Shapes("shape" & [namedrange & i]).Top = Cells(3, 3).Top Next i End Sub