Как скопировать определенные ячейки из одного листа в другой, если критерии - PullRequest
0 голосов
/ 14 февраля 2019

Я новичок в VBA.

Я хочу скопировать определенные ячейки из одного листа в другой на основе критериев.Например, если в диапазоне H2: H1000 value = "Yes", скопируйте ячейки из столбцов A, B, C и D из той же строки, где критерии соответствуют другому листу.

Мой код - всего лишь скретчиз того, что мне удалось сделать, я не знаю, как выбрать ячейки из той же строки, где критерии соответствуют.

Sub FindandCopy()

    Dim rngA As Range
    Dim cell As Range


    Set rngA = Sheets("OFCE").Range("H2:H1000")
    For Each cell In rngA
        If cell.Value = "Yes" Then
            cell.EntireRow.Copy
            Sheets("Dashboard").Range("I2").End(xlDown).Select
            ActiveSheet.Paste
        End If
    Next cell

End Sub

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

В Интернете много материала по этому вопросу, поэтому вы сможете решить его.

Я использовал смещение (чтобы перейти от H к A) и изменил размер (чтобы расширить A до AD), а затем скопировал в первыйнеиспользованный ряд I на другом листе.

Вам не нужно выбирать / активировать, на самом деле это не рекомендуется .

Sub FindandCopy()

Dim rngA As Range
Dim cell As Range

Set rngA = Sheets("OFCE").Range("H2:H1000")

For Each cell In rngA
    If cell.Value = "Yes" Then
        cell.Offset(, -7).Resize(, 4).Value.Copy _
             Sheets("Dashboard").Range("I" & Rows.Count).End(xlUp)(2)
    End If
Next cell

End Sub

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

0 голосов
/ 14 февраля 2019

Вы можете попробовать использовать v-lookup или простую функцию sumif.Вы можете сделать это вне vba, в самом листе или запрограммировать его в существующий макрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...