Задать вопрос
@adiunov
Предприниматель

Как вставить в лист выборку из другого листа?

В Гугл-таблице есть два листа "Задачи" и "Действия"

В "Задачах"
Поля:
Номер, Задача
Строки
1, Сделать кухню
2, Сделать комнату

В "Действиях"
Поля: Номер задачи, Действие
Строки:
1, Заказать кухню
1, Привести кухню
1, Собрать кухню

Вопрос - можно ли в листе "Задачи" под строкой с номером задачи 1 отображать строки из листа "Действия", где поле "Номер задачи" имеет значение 1? Если да, как это сделать?

Скриншот как я это вижу :) - c703cf3d32894744a153863c172ad9c2.jpg
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
AnnTHony
@AnnTHony
Интроверт
Sub ToDo()
    Dim WB As Workbook
    Dim WS_Task As Worksheet
    Dim WS_Action As Worksheet
    
    Dim TaskRowIndex As Long
    Dim ActionRowIndex As Long
    
    Set WB = Excel.ActiveWorkbook
    Set WS_Task = WB.Worksheets("Задачи")
    Set WS_Action = WB.Worksheets("Действия")
    
    For TaskRowIndex = WS_Task.Rows.Count To 2 Step -1
        If WS_Task.Cells(TaskRowIndex, 1) <> "" Then
            Exit For
        End If
    Next TaskRowIndex
    
    For ActionRowIndex = WS_Action.Rows.Count To 2 Step -1
        If WS_Action.Cells(ActionRowIndex, 1) <> "" Then
            Exit For
        End If
    Next ActionRowIndex
    
    For TaskRow = TaskRowIndex To 1 Step -1
        TaskNumber = WS_Task.Cells(TaskRow, 1)
        If TaskNumber <> "" And IsNumeric(TaskNumber) Then
            TaskRowShift = TaskRow + 1
            For ActionRow = ActionRowIndex To 2 Step -1
                If WS_Action.Cells(ActionRow, 2) = TaskNumber Then
                    WS_Task.Rows(Int(TaskRowShift)).Select
                    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                    WS_Task.Cells(TaskRowShift, 3) = WS_Action.Cells(ActionRow, 1)
                    WS_Task.Cells(TaskRowShift, 4) = WS_Action.Cells(ActionRow, 2)
                    WS_Task.Cells(TaskRowShift, 5) = WS_Action.Cells(ActionRow, 3)
                End If
            Next ActionRow
        End If
    Next TaskRow
End Sub


Лист "ЗАДАЧИ"
f330041c95204d54a34b23262393f806.png

Лист "Действия"
40771290914d4a9fb25ee99d915e3806.png

Результат
ffee80edeb08429eb34220ae9f5d9603.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы