-1

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

2 ответа2

0

Excel Find Синтаксис Find

Dim rFound As Range

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

выражение.Найти (Что, После, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

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
0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .