Excel VBA在双循环中删除数组列以提高性能

时间:2018-09-10 11:46:38

标签: arrays excel vba loops

我希望加快我的代码的速度。我的代码包含一个双循环,首先循环遍历主表的头,然后在主数组和源头匹配时(通过遍历(嵌套))遍历源数组以粘贴源数据(源数组的列顺序会不时变化) )。 ATM我的代码会在8秒内以113列的形式导入1000行数据。

我进一步优化代码的想法是,在复制完值之后,删除嵌套循环中的匹配数组列,从而减少了为每个成功的循环交互搜索所需的数组头的数量。这可能吗?它将使我的代码运行得更快吗?

我主持了论坛,并考虑重新设置数组,但是我的数组范围声明为...

SourceWB.Sheets(1).UsedRange

...而且我想知道每次循环成功匹配头时如何排除数组头。

   'Loop through master table headers
    For x = 1 To MasterTable.HeaderRowRange.Count

        'Loop through array headers and copy values to master
        For i = LBound(ArrImport, 2) To UBound(ArrImport, 2)

            If MasterTable.Range(1, x).Value = ArrImport(1, i) Then
                MainWB.Sheets("Brdx").Range(Cells(h, x).Address, Cells(h + SourceTable.ListRows.Count - 1, x).Address).Value = _
                SourceWB.Sheets(1).Range(SourceTable.ListColumns(i).DataBodyRange.Address).Value


                Exit For
            End If

        Next i
    Next x

提前谢谢

0 个答案:

没有答案