извлечение строки данных из таблицы Excel

извлечение строки данных из таблицы Excel

Мне нужно извлечь строку данных из таблицы Excel и перенести ее на другой лист. Мне нужно найти ряд тире (- - - - -), а затем извлечь строку данных, которая находится на 2 строки ниже тире.

решение1

Excel Найти Найти синтаксис

Dim rFound As Range

Где «выражение» — это любой допустимый объект диапазона, например Range("A1:A100"), Columns(2) и т. д. Кроме того, объект диапазона возвращается всякий раз, когда мы используем метод Find.

выражение.Find(Что, После, СмотретьВ, СмотретьНа, ПорядокПоиска, НаправлениеПоиска, СопоставлениеРегистра, СопоставлениеБайта, ФорматПоиска)

Dim rFound As Range On Error Возобновить Далее

    With ActiveWorkbook.ActiveSheet

        Set rFound = .Columns(1).Find(What:="- - - - -", After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

    On Error GoTo 0
        If Not rFound Is Nothing Then
             Match = rFound.Address
             MsgBox (rFound.Offset(2, 0))


        End If

    End With

решение2

Я бы использовал для этого надстройку Power Query. Она может считывать данные из таблиц Excel.

Я бы построил 2 запроса. Первый добавил бы столбец индекса (номер строки), затем отфильтровал бы строки с тире. Затем я бы добавил простой вычисляемый столбец: [Индекс] + 2. Этот запрос не должен выводить таблицу.

Второй запрос начнется с базовой таблицы, затем объединится с первым запросом, используя этот столбец "[Index] + 2" и тип соединения внутренний (сохранить только совпадения). Этот запрос выведет новую таблицу в Excel.

Вы могли бы построить почти все это, просто щелкая в пользовательском интерфейсе Power Query. Одна необходимая формула была бы очень простой: [Index] + 2.

Связанный контент