Создание списка дел с помощью VBA в Excel: Как динамически вставлять строки? - PullRequest
0 голосов
/ 09 января 2019

Прежде всего: мне очень жаль, если на этот вопрос уже был дан ответ. Я посмотрел и не нашел ничего, что могло бы мне помочь. Я новичок и очень благодарен за любую помощь.

Моя проблема: у меня есть лист с проектами, каждый из которых имеет индивидуальные идентификаторы, и другой лист с задачами, которые также имеют индивидуальные идентификаторы задач и идентификатор проекта, к которому они принадлежат. Есть несколько задач, относящихся к проекту.

То, что я хочу сделать, - это автоматическая сортировка задач в рамках проекта, к которому они принадлежат, аналогично обычному списку дел.

Вот небольшая галерея примеров изображений

Опять же, любая помощь будет оценена. Спасибо.

1 Ответ

0 голосов
/ 09 января 2019

Вы можете попробовать с двойным циклом обработать обе таблицы (Проекты и Задачи) следующим образом:

    Public Sub DoResults()
    Set P = Sheets("Projects")
    Set T = Sheets("Tasks")
    Set R = Sheets("Result")

    Dim row_p, row_t, row_r As Integer
    Dim curr_project_id


    row_p = 2
    row_t = 2
    row_r = 2

    R.UsedRange.ClearContents

    While (P.Range("A" & row_p) <> "")
        curr_project_id = P.Range("A" & row_p)

        'Copy the project row in the Results Sheet
        P.Range("A" & row_p & ":C" & row_p).Copy R.Range("A" & row_r)
        row_r = row_r + 1

        While (T.Range("A" & row_t) = curr_project_id)
            T.Range("B" & row_p & ":D" & row_p).Copy R.Range("D" & row_r)
            row_t = row_t + 1
            row_r = row_r + 1
        Wend
        row_p = row_p + 1
    Wend

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