Прокрутите набор данных и выберите диапазон данных - PullRequest
0 голосов
/ 12 июня 2019

У меня есть набор данных с номерами портфелей в столбце А. Я хочу создать макрос, который проходит по столбцу А, останавливается и выбирает данные при появлении нового номера портфеля.

У меня есть пример ниже.

Portfolio   Owner Name
7000107510  Bravo Top B.V.
7000107510  Bravo Top B.V.
7000107510  Bravo Top B.V.
7000107510  Bravo Top B.V.
7000107510  Bravo Top B.V.
7000107510  Bravo Top B.V.
7000107510  Bravo Top B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.
7000108762  Beheermaatschappij J. de Vrind B.V.

Таким образом, цикл выбирает 7000107510 и останавливает цикл, когда видит другое число (в данном случае 7000108762). Затем я хочу выбрать все строки данных, которые содержат номер портфеля 7000107510 и столбец рядом с ним.

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Попробуйте:

    Option Explicit

    Sub test()

        Dim LastRow As Long, i As Long, j As Long, StartPoint As Long
        Dim strValue As String

        strValue = ""
        StartPoint = 2

        'With statement refer to Sheet1. Change if needed
        With ThisWorkbook.Worksheets("Sheet1")

            'Find Last row of column A in Sheet1
            LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

            'Loop starting from row 2 to LastRow variale. Change Starting position if needed
            For i = 2 To LastRow

                If i >= StartPoint Then

                    strValue = .Range("A" & i).Value

                    For j = i + 1 To LastRow

                        If .Range("A" & j).Value <> strValue Then
                            .Range("A" & j - 1 & ":B" & j - 1).Select
                            Exit For
                        End If

                    Next j

                    StartPoint = j

                End If

            Next i

        End With

    End Sub
1 голос
/ 12 июня 2019

Так как нам нужно найти строку рядом с искомым значением, мы можем искать его снизу, используя направление xlPrevious. Он найдет последнюю строку с этим значением. Смещение на одну строку вниз, мы получим нужную нам строку.

Range("A:A").Find("Portfolio_Number", SearchDIrection:=xlPrevious).Offset(1).EntireRow.Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...