繁体   English   中英

根据单元格值移动整行

[英]Moving entire row based on a cell value

我对 VBA 相当陌生,而且我已经看过了,似乎无法在任何地方找到我需要的答案(如果我一直在寻找的话)。

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

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

它是一个简单的 For each cell loop 还是一个新人(比如我自己)可能还不知道的有点不同的东西? 如果有人能告诉我一个好的方法或给我指明正确的方向,那就太好了:)。

先感谢您。

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

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

在此示例代码中,我只是使用 A 列到 O 列并根据条件过滤 A 列。

在此处输入图片说明

运行代码,输入要过滤的内容,结果将在 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM