Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 只使用一些数组元素执行for循环_Excel_Vba - Fatal编程技术网

Excel 只使用一些数组元素执行for循环

Excel 只使用一些数组元素执行for循环,excel,vba,Excel,Vba,我想这很容易,但我想不出来 我有一个包含多个项目的数组,如下所示: slds = Array(3, 15, 27, 39, 51, 87, 74, 89, 11, 45, 57, 24) 我只想使用数组中的一些项(由位置定义)来执行For循环,例如,前4个元素,但我不知道它的正确语法。差不多 For slds(0) to slds(3) 'do some... 有什么想法吗?假设VBA中有一个典型的基于零的数组: For i = 0 To 3 'do stuff Debug.

我想这很容易,但我想不出来

我有一个包含多个项目的数组,如下所示:

slds = Array(3, 15, 27, 39, 51, 87, 74, 89, 11, 45, 57, 24)
我只想使用数组中的一些项(由位置定义)来执行
For
循环,例如,前4个元素,但我不知道它的正确语法。差不多

For slds(0) to slds(3) 'do some...

有什么想法吗?

假设VBA中有一个典型的基于零的数组:

For i = 0 To 3
    'do stuff
    Debug.Print slds(i)
Next
在这里,您表示需要索引0到3,或前4个元素

如果你不能确定零基,你可以使用

对于i=lBound(slds)到lBound(slds)+3,如

所述,假设VBA中有一个典型的基于零的数组:

For i = 0 To 3
    'do stuff
    Debug.Print slds(i)
Next
在这里,您表示需要索引0到3,或前4个元素

如果你不能确定零基,你可以使用

对于i=lBound(slds)到lBound(slds)+3,如

所述,或者您可以通过
Redim
阵列来捕获第一个x值

如果仍要循环,请保留For循环

Sub a()
Dim slds
Dim lngCnt As Long
slds = Array(3, 15, 27, 39, 51, 87, 74, 89, 11, 45, 57, 24)
ReDim Preserve slds(1 To 3)
For lngCnt = 1 To UBound(slds)
    Debug.Print slds(lngCnt)
Next
End Sub

或者,您可以通过
Redim
数组来捕获前x个值

如果仍要循环,请保留For循环

Sub a()
Dim slds
Dim lngCnt As Long
slds = Array(3, 15, 27, 39, 51, 87, 74, 89, 11, 45, 57, 24)
ReDim Preserve slds(1 To 3)
For lngCnt = 1 To UBound(slds)
    Debug.Print slds(lngCnt)
Next
End Sub

对于i=lBound(slds)到lBound(slds)+3,则使用slds(i)引用项目。
对于i=0到3:msgbox slds(i):例如,下一个i
。或者只需将数组重新分配到您选择的长度。
对于i=lBound(slds)到lBound(slds)+3,则使用slds(i)引用项目。
对于i=0到3:msgbox slds(i):例如,下一步i
。或者只需将阵列重新分配到您选择的长度。