Как переместить всю строку на другой лист в Excel на основе значения ячейки?
Если вам нужно переместить всю строку на другой лист на основе значения ячейки, эта статья поможет вам.
Переместите Вся строка на другой лист на основе значения ячейки с помощью кода VBA
Переместите Вся строка на другой лист на основе значения ячейки с помощью Kutools для Excel
Переместите Вся строка на другой лист на основе значения ячейки с помощью кода VBA
Как показано на снимке экрана ниже, необходимо переместить всю строку с Лист1 на Лист2, если в столбце C содержится слово «Done». Воспользуйтесь приведённым ниже кодом VBA.

1. Нажмите одновременно клавиши Alt+F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. В окне Microsoft Visual Basic для приложений выберите Вставка > Модуль. Затем скопируйте и вставьте приведённый ниже код VBA в открывшееся окно.
VBA code 1: Move entire row to another sheet based on cell value
Sub Cheezy()
'Updated by Kutools for Excel 2017/8/28
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Done" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Done" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub Примечание: В коде Лист1 — это рабочий лист, содержащий строку, которую нужно переместить, а Лист2 — целевой рабочий лист, куда строка будет перемещена. «C:C» — это столбец с определённым значением, а «Done» — конкретное значение, по которому выполняется перемещение строки. При необходимости измените эти параметры.
3. Нажмите клавишу F5, чтобы выполнить код. После этого строка, соответствующая заданным критериям на Листе 1, будет немедленно перемещена на Лист 2.

Примечание: Приведённый выше код VBA удаляет строки из исходных данных после их перемещения на указанный рабочий лист. Если вы хотите не удалять строки, а копировать их на основе значения ячейки, используйте приведённый ниже код VBA 2.
VBA code 2: Copy entire row to another sheet based on cell value
Sub MoveRowBasedOnCellValue()
'Updated by Extendoffice 2017/11/10
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Done" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub Переместите Вся строка на другой лист на основе значения ячейки с помощью Kutools для Excel
Если вы новичок в работе с кодом VBA, рекомендуем воспользоваться утилитой Выбрать определенные ячейки из набора инструментов Kutools для Excel. С её помощью можно легко выбрать все строки на основе одного или нескольких значений ячеек на рабочем листе, а затем скопировать выбранные строки в нужный лист. Выполните следующие действия.
1. Выделите столбец, содержащий значения ячеек, на основе которых будут перемещаться строки, затем нажмите Kutools > Выделить > Выбрать определенные ячейки. См. снимок экрана:

2. В открывшемся диалоговом окне Выбрать определенные ячейки выберите Вся строка в разделе Выбрать тип, укажите Равно в раскрывающемся списке Указать тип, введите значение ячейки в текстовое поле и нажмите кнопку ОК.
Появится диалоговое окно Выбрать определенные ячейки, в котором отобразится количество выделенных строк; при этом все строки, содержащие указанное значение в выбранном столбце, уже будут выделены. См. снимок экрана:

3. Нажмите клавиши Ctrl+C, чтобы скопировать выделенные строки, а затем вставьте их в нужный лист.

Примечание: Если вы хотите переместить строки на другой рабочий лист на основе двух разных значений ячеек (например, «Done» или «Processing»), включите условие ИЛИв диалоговом окне Выбрать определенные ячейки, как показано на снимке экрана ниже:

Если вы хотите воспользоваться бесплатной пробной версией (30 дней) этой утилиты, нажмите, чтобы скачать её, а затем выполните операцию в соответствии с приведёнными выше шагами.
Связанные статьи:
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек