Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays 如何在循环中到达不同的阵列_Arrays_Excel_Vba_Loops_Variables - Fatal编程技术网

Arrays 如何在循环中到达不同的阵列

Arrays 如何在循环中到达不同的阵列,arrays,excel,vba,loops,variables,Arrays,Excel,Vba,Loops,Variables,因此,我基本上需要在循环中同时处理不同的数组,以便在每个不同的表上粘贴值。我不明白如何让两者都进步 Sub TransAll() Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook Dim

因此,我基本上需要在循环中同时处理不同的数组,以便在每个不同的表上粘贴值。我不明白如何让两者都进步

    Sub TransAll()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.EnableEvents = False

    Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook
    Dim Arr1 As Variant, Arr2 As Variant, Arr3 As Variant, Arr4 As Variant
    Dim i As Integer
    Dim x As Integer

    Set wb1 = Workbooks("primecost.xlsm")
    Set wb2 = Workbooks("inventory.xlsm")
    Set wb3 = Workbooks("transmanager.xlsm")

    Arr1 = Array(2, 3, 5, 6)
    Arr2 = Array(2, 3, 4, 5, 6, 7)

    Arr3 = Array(1, 2, 3, 4)
    Arr4 = Array(5, 6, 7, 8, 9)


    'for "I" works fine by iteself, but it needs "I" and "X" to progress accordingly in the same loop according to the different arrays.

    For i = LBound(Arr1) To UBound(Arr1)
    'For x = LBound(Arr3) To UBound(Arr3)

        wb1.Sheets(Arr1(i)).Cells.Copy
            wb3.Sheets(Arr3(x)).Cells.PasteSpecial Paste:=xlPasteValues
    Next i
    'Next x


    '------------------------------------------------------------------
        'this works but on at a time... very slow and a pain
        'wb1.Sheets(6).Cells.Copy
            'wb3.Sheets(1).Cells.PasteSpecial Paste:=xlPasteValues    
    '------------------------------------------------------------------      

    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    End Sub

我只需要知道如何让两个变量在同一个循环中进行。

要在
I
之前增加
x
只需将
Next x
切换到
Next I
之前



解决方案发布评论 将您的循环更新为

For i = LBound(Arr1) To UBound(Arr1)
     wb1.Sheets(Arr1(i)).Cells.Copy
     wb3.Sheets(Arr3(i)).Cells.PasteSpecial Paste:=xlPasteValues
Next i

要在
i
之前增加
x
,只需将
Next x
切换到
Next i
之前



解决方案发布评论 将您的循环更新为

For i = LBound(Arr1) To UBound(Arr1)
     wb1.Sheets(Arr1(i)).Cells.Copy
     wb3.Sheets(Arr3(i)).Cells.PasteSpecial Paste:=xlPasteValues
Next i

只需在使用后添加说,
x=x+1
,或者将您的
Next x
移动到
Next i
上方即可。。。真的很简单。。。在我。。。有时候我讨厌这件事。。。哈哈,谢谢你!只需在使用后添加说,
x=x+1
,或者将您的
Next x
移动到
Next i
上方即可。。。真的很简单。。。在我。。。有时候我讨厌这件事。。。哈哈,谢谢你!它贯穿并最终在每一页上粘贴第一个数组(I)的最后一页。。。因此,它的行为就像它是粘贴2,3,5,6在每一页上,6是最后一个是一个显示。。。它应该是在x-1上粘贴I-2,在x-2上粘贴I-3,依此类推…在下一个x上运行4次,然后在下一个I和x上运行4次。。。所以不是一起读。。。它需要是下一个x和我在同一时间哦-所以你只需要4份拷贝/粘贴?我跟随,请查看我的解决方案底部的编辑。这取决于
Arr1
Arr3
的大小始终相同。它贯穿并最终在每页上粘贴第一个数组(I)的最后一页。。。因此,它的行为就像它是粘贴2,3,5,6在每一页上,6是最后一个是一个显示。。。它应该是在x-1上粘贴I-2,在x-2上粘贴I-3,依此类推…在下一个x上运行4次,然后在下一个I和x上运行4次。。。所以不是一起读。。。它需要是下一个x和我在同一时间哦-所以你只需要4份拷贝/粘贴?我跟随,请查看我的解决方案底部的编辑。这取决于
Arr1
Arr3
的大小始终相同。
For i = LBound(Arr1) To UBound(Arr1)
     wb1.Sheets(Arr1(i)).Cells.Copy
     wb3.Sheets(Arr3(i)).Cells.PasteSpecial Paste:=xlPasteValues
Next i