Перемещение всей строки на основе значения ячейки - PullRequest
0 голосов
/ 09 октября 2018

Я довольно новичок и новичок в VBA, и я посмотрел и не могу найти ответ, который мне нужен где-то (если я искал правильно).

Это простой вопрос, но я бы хотелЯ хотел бы найти наилучший способ достичь этого.

У меня есть огромное количество данных около 26 000 строк.Я знаю код, необходимый для поиска данных и перемещения строки на основе результатов, но я хотел бы знать, как лучше всего (наиболее функционально) пройти по каждой ячейке в столбце, чтобы найти правильные критерии и переместить строку.

Было бы просто Для каждой клеточной петли или что-то немного другое, что новый человек (как и я) может еще не знать?если бы кто-то мог сказать мне хороший метод или указать мне правильное направление, это было бы здорово:).

Заранее спасибо.

1 Ответ

0 голосов
/ 09 октября 2018

Как уже упоминалось, использование автофильтра, вероятно, было бы лучшим способом получить результаты в большом листе данных.

Поначалу, будучи плохо знакомым с VBA, трудно понять, с чего начать, поэтому приведу простой пример..

В этом примере кода я просто использую столбцы от A до O и фильтрую столбец A для критериев.

enter image description here

Запуститекод, введите то, что вы хотите фильтровать, результат будет в листе 2.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...