Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 VBA-用于具有特定值的循环_Vba_Excel_For Loop - Fatal编程技术网

Excel VBA-用于具有特定值的循环

Excel VBA-用于具有特定值的循环,vba,excel,for-loop,Vba,Excel,For Loop,我试图创建一个For循环,它只选择一些值,但无法计算语法,或者如果可能的话 我希望它是这样的 Dim i As Integer For i = 1,3,8,15 Then Do something Next i 有什么想法吗?试试看 Sub Demo() Dim indexArr As Variant Dim i As Long indexArr = Array(1, 3, 8, 15) For i = LBound(indexArr) To UBound(i

我试图创建一个For循环,它只选择一些值,但无法计算语法,或者如果可能的话

我希望它是这样的

Dim i As Integer
For i = 1,3,8,15 Then
Do something
Next i
有什么想法吗?

试试看

Sub Demo()
    Dim indexArr As Variant
    Dim i As Long

    indexArr = Array(1, 3, 8, 15)
    For i = LBound(indexArr) To UBound(indexArr)
        Debug.Print indexArr(i)
    Next i
End Sub
你不能

如果有模式,您可以使用
步骤

For i = 1 to 15 Step 2
哪个将执行
1,3,5,7,…

在这种情况下,由于没有模式,您需要添加
If
Select case

Dim i As Integer
For i = 1 to 15 Then
    Select Case i
        Case 1,3,8,15
             'Do Something
    End Select
Next i

您可以使用if语句:

Dim i As Integer
For i = 1 To 15 Then
    If i = 1 or i = 3 or i = 8 or i = 15 Then
        'Do something
    End If
Next i
希望对您有所帮助。

您可以执行以下操作:

Dim number_list as collection
set number_list = new collection

number_list.add 1
number_list.add 3
number_list.add 8
number_list.add 15

for each number in number_list
    'Do something with number
Next number
    Dim i as Variant
    Dim iArray as Variant
    iArray=Array(1,3,8,15)

    For Each i In iArray
         'Do Something
    Next i

干杯

这是可行的,但这似乎是一个很大的延伸-为什么要费心声明和创建一个
集合
?虽然这段代码可以回答这个问题,提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。此解决方案将上述数组解决方案中的元素与我推断OP需要的易用性相结合。数组方法需要循环遍历数组元素,然后将数组元素转换回一个变量。此方法跳过2位。首先,它跳过了通过数组元素的复杂步骤逻辑。其次,它跳过了将数组元素转换回可用变量的步骤。希望这有帮助。我不明白这是如何回答这个问题的。OP只想从数组中选择一些值。您刚刚演示了for循环语法。