2017-03-14 63 views
0

我想知道这是否可能,基本上我想生成一组变量(sh0,sh1,sh2等)。我正在考虑使用一个数组,但我无法让它工作。 这里是我的代码:从数组中设置变量名

Dim intI As Integer 
Dim shArray(0 To 10) As String 
For intI = 0 To 10 
    shArray(intI) = "sh" & intI 
    Dim shArray(intI) As Shape 'stumped in this part 
    Set shArray(intI) = s3.Duplicate(0, s3.SizeHeight * -1) 
Next intI 

运行上面的代码块会产生错误“要求常量表达式”。我知道你不能以这种方式声明一个变量,我只是想不出其他方法。 谢谢。

+0

什么是你想与做的事:在这part'难倒'shArray(INTI)= “SH” 及INTI 暗淡shArray(INTI)作为形”? – Stefan

+0

将其声明为'形状'类型。最后,它应该像Dim sh0 As Shape ...等 –

+0

@Ran_TH你想用你想要创建的形状数组做什么?形状数组和'shArray(intI)'之间的关系是什么? –

回答

0

好了,所以我终于解决了我的问题,所以我想我反正要回答我的问题作为未来的参考

因此,而不是试图用我用VB集合,而不是数组,所以我的代码在结束运行是这样的:

Dim sColl As New Collection 
Dim shDupe As Shape 
Dim i As Integer 
Dim f As Shape 
Set shDupe = ActiveSelection.Group 
sColl.Add shDupe 
For i = 1 To 3 
    If sBottomLimit = 1 Then 
     Set f = sColl(1) 
     Set f = f.Duplicate(f.SizeWidth, 0) 
    Else 
     Set f = sColl(i) 
     Set f = f.Duplicate(0, f.SizeHeight * -1) 
    End If 
    sColl.Add f 
Next