根据单元格值移动整行

时间:2018-10-09 15:16:20

标签: excel vba excel-vba

对于VBA来说,我是个新手,而且很新鲜,而且看上去也找不到在任何地方(如果我一直正确查找的话)所需的答案。

这是一个简单的问题,但我想找出实现它的最佳方法。

我有大约26,000行的大量数据。我知道需要查找数据并根据结果移动行的代码,但是我想知道的是遍历列中每个单元格以查找正确条件并移动行的最佳(最具功能性)方式

这会很简单对于每个单元格循环还是某个新人(例如我自己)可能还不知道的东西有所不同?如果有人可以告诉我一个好的方法,或者为我指明正确的方向,那将是很棒的:)。

先谢谢您

1 个答案:

答案 0 :(得分:0)

如前所述,使用自动过滤器可能是在大型数据表中获得结果的最佳方法。

刚接触VBA可能很难理解从哪里开始,所以这是一个简单的示例。

在此示例代码中,我仅使用A到O列,并过滤A列作为条件。

enter image description here

运行代码,输入要过滤的内容,结果将显示在Sheet2中。

Sub FilterExample()
    Dim Sh As Worksheet, ws As Worksheet
    Dim LstRw As Long, rng As Range, s As String

    Set Sh = Sheets("Sheet1")
    Set ws = Sheets("Sheet2")

    s = InputBox("What to find?")
    ws.Range("A2:O" & ws.Cells(ws.Rows.Count, "O").End(xlUp).Row).ClearContents
    With Sh
        LstRw = .Cells(.Rows.Count, "A").End(xlUp).Row

        .Range("A1").AutoFilter Field:=1, Criteria1:=s
        Set rng = .Range("A2:O" & LstRw)
        rng.Copy ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1)
        .AutoFilterMode = False
    End With
End Sub