Как переместить всю строку на другой лист на основе значения ячейки в Excel?
Чтобы переместить всю строку на другой лист на основе значения ячейки, эта статья вам поможет.
Перемещение всей строки на другой лист на основе значения ячейки с помощью кода VBA
Перемещение всей строки на другой лист на основе значения ячейки с помощью Kutools для Excel
Перемещение всей строки на другой лист на основе значения ячейки с помощью кода VBA
Как показано на скриншоте ниже, вам нужно переместить всю строку с Лист1 на Лист2, если в столбце C есть определенное слово «Done». Вы можете попробовать следующий код VBA.
1. Нажмите клавиши Alt+ F11 одновременно, чтобы открыть окно Microsoft Visual Basic for Applications.
2. В окне Microsoft Visual Basic for Applications нажмите Вставить > Модуль. Затем скопируйте и вставьте приведенный ниже код VBA в окно.
Код VBA 1: Перемещение всей строки на другой лист на основе значения ячейки
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 2: Копирование всей строки на другой лист на основе значения ячейки
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, здесь я представляю вам инструмент Select Specific Cells (Выбрать определенные ячейки) из 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% и сократите сотни лишних кликов мышью каждый день!