Как * переместить * определенные строки с одного листа на другой при использовании выпадающих меню фильтра в Excel?

У меня есть проблема, которая звучит довольно просто, но которая очень трудно решить, когда вы не привыкли к программированию Excel макросов.

НаSheet1, есть список из нескольких задач (A,B,C,D). Каждой задаче присваивается статус, который указывает, является ли задача Not startedIn progressили Completed.
Лист 1

На листе 2 есть список Completedзадач.

Введите описание изображения здесь

Теперь я хочу написать макрос, который делает следующее: всякий раз, когда я изменяю статус одной из задач на Sheet1ОТ Not startedили In progressна Completed(например, для задачи D),

Лист 1 с выпадающим меню

Я хочу, чтобы Excel переместил эту строку Sheet1Sheet2следующим образом:

  1. Я хочу, чтобы Excel удалить строку 5из Sheet1.
  2. Затем Excel должен переместить строку 3в строку 4и строку 2в строку3 Sheet2
  3. Теперь Excel должен скопировать удаленную строку (5) из Sheet1В теперь пустую строку2Sheet2.

Я искал различные решения , но все, что я нашел, было просто некоторым VBA-кодом, который не соответствовал моей конкретной проблеме, независимо от того, как сильно я пытался адаптировать его. Он был использован для программирования макроса для немецкой версии Excel.

  • Zeile = Row
  • erledigt = completed
  • erledigte Projekte = completed projects

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Zeile As Long
    Set Target = Intersect(Target, Range("J1:J1000"))
    If Target Is Nothing Then Exit Sub
    If Target = "erledigt" Then
    Zeile = Target.Row
    Range(Cells(Zeile, 3), Cells(Zeile, 10)).Copy _
    Destination:=Sheets("erledigte Projekte").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    Target.EntireRow.Delete
    End If
    End Sub
    

Я могу, в некотором роде, понять этот код, но я никогда не изучал Visual Basic. Таким образом, я, к сожалению, не знаю, как изменить этот код, чтобы заставить его работать. Я знаю, что это (более или менее) простая задача, но я не знаю, как ее решить. Поэтому я прошу вашей помощи.

1 ответ

  1. Я думаю, прежде всего, что если вы назовете свою задачу с номером (1,2,3,4…) вместо буквы (A ,B, C…) будет легче решить эту проблему.

    После этого можно сравнить значение ячейки(k,1), где k-строка, содержащая новую завершенную задачу, со значением других завершенных задач на листе 2.

    Это мои 2 цента.