Как переназначить отдельные строки между несколькими листами на основе нескольких значений ячеек - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть четыре таблицы в формате таблицы (A, B, C и D) каждая со строками разных данных под соответствующими заголовками столбцов. Я пытаюсь написать макрос VBA, чтобы вырезать строки из одного листа и вставлять их в нижнюю часть другого на основе значения одной ячейки в данном столбце. Я знаю, что это было сделано с одного отдельного листа на другой, и я нашел для этого базовый код c. Однако я хотел изменить это так, чтобы он применялся ко всем рабочим листам, учитывал несколько перестановок одного и того же значения и избегал повторной проверки строк, которые уже / были помещены в их «правильную» рабочую таблицу, то есть все строки, помеченные как «Заархивированные». «во всех его различных перестановках в столбце 17 соответствующих им других рабочих листов перетасовываются на рабочий лист« D », как только слово« заархивировано »введено в эту ячейку и нажата клавиша ввода. Я думаю, что я испортил что-то здесь с базисами "<>" и "или", но не уверен, как их исправить. Я также не уверен, что лучше связать эту команду с нажатием клавиши «Ввод» или просто проверять значения автоматически?

Sub MoveRows()

Dim k As String
a = Worksheets(k).Cells(Rows.Count,1).End(xlUp).Row

    If Worksheet.Name <> "D" Then

            For i = 2 To a Step -1

                If Worksheets(k).Cell(i,17).Value = "Archived" or "archived" or "ARCHIVED" Then 
                    Worksheets(k).Rows(i).Cut
                    Worksheets("D").Range("A1").End(xldown).Offset(1,0).Insert  
                End If
            next i  
    Else 'do nothing'

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