Скопируйте текст ячейки в следующие 4 строки автоматически для всего документа Excel - PullRequest
0 голосов
/ 02 мая 2019

У меня большой документ Excel с множеством строк.

Документ организован в 2 основных столбца: ID и год. Каждый идентификатор (столбец A) имеет 5 лет, связанных с ним в хронологическом порядке.

Мне нужно отфильтровать разные годы по их ключам. Например, я хочу отфильтровать год 1998 по идентификатору 311511.

The document example

Проблема: Столбец ID появляется только в первой строке каждые 5 лет (как вы можете видеть на прилагаемом рисунке). Другими словами, идентификатор появляется только в строках с 2001 годом, но отсутствует в остальных строках, которые содержат 1997–2000 годы.

Как я упоминал ранее, это очень большие документы, и исправление этого вручную (копирование-вставка и т. Д.) Очень подвержено ошибкам, не говоря уже о тяжелой работе.

Поэтому, знаете ли вы, как я мог бы автоматически скопировать первую строку в следующие 4 строки во всем документе? Какой-то сценарий или функция, которая автоматически принимает значение первой строки - например, 311511 - и копирует его в следующие 4 пустых строки , после чего продолжает делать то же самое для следующей серии - 311512 - и скопировать его в следующие 4 пустых строки.

Любая помощь или предложение будет принята с благодарностью!

1 Ответ

1 голос
/ 02 мая 2019

Предполагается, что ваши идентификаторы начинаются в ячейке A1, а под таблицей ничего нет.

Private Sub fill_with_id()

    Dim id As String
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row + 4
        If IsEmpty(Cells(i, 1)) Then
            Cells(i, 1) = id
        Else
            id = Cells(i, 1)
        End If
    Next i

End Sub

Заполнит таблицу идентификаторами. После этого вы можете создать сводную таблицу

Примечание. Я бы рекомендовал сохранить копию документа, поскольку vba-измененный документ не может быть возвращен

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