Перенос данных с одного листа на другой лист на основе определенного значения ячейки - PullRequest
0 голосов
/ 22 марта 2019

Как перенести данные из рабочего листа в другой на основе определенного значения ячейки?Я пробовал несколько разных кодов VBA, но я должен быть честным;У меня есть только базовые знания о кодах VBA.

Дело в том, что у меня есть один рабочий лист, который является регистром большого количества информации, и я хочу перенести конкретные данные из каждой строки на основе одного конкретного значения ячейки втот же ряд.Например, в столбце L у меня есть возможность через выпадающее меню выбрать «Да - Срочно», «Да» и «Нет».Если это «Да - Срочно» или «Да», я хочу, чтобы он автоматически переносил некоторые данные в две отдельные таблицы.Например, ячейки A, C, E и G той же строки, которые имеют «Да» и перенесены в B, D, E и F на отдельном листе.

FYI, в книге Excel есть заголовки ввсе листы с фильтрами.Это фильтры, которые меня раздражают.Я использую Microsoft Office 2010.

Я надеюсь, что кто-нибудь может помочь с этим.

1 Ответ

0 голосов
/ 22 марта 2019

Я думаю, что-то вроде этого будет работать:

'declaring variables
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Dim sheet3 As Worksheet
Dim new_row As Long

'setting sheets
Set sheet1 = ThisWorkbook.Sheets("Sheet 1")
Set sheet2 = ThisWorkbook.Sheets("Sheet 2")
Set sheet3 = ThisWorkbook.Sheets("Sheet 3")

'loop (starts at row 2 because of headers)
For Each cell In sheet1.Range(sheet1.Cells(2, 12), sheet1.Cells(Rows.Count, 12).End(xlUp))
    If cell.Value = "Yes - Urgent" Or cell.Value = "Yes" Then
        'first empty cell in sheet 2 (assuming column A always has a value)
        new_row = sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        'sheet1-A to sheet2-B
        sheet2.Cells(new_row, 2) = sheet1.Cells(cell.Row, 1)
        'sheet1-C to sheet2-D
        sheet2.Cells(new_row, 4) = sheet1.Cells(cell.Row, 3)
        'sheet1-E to sheet2-E
        sheet2.Cells(new_row, 5) = sheet1.Cells(cell.Row, 5)
        'sheet1-G to sheet2-F
        sheet2.Cells(new_row, 6) = sheet1.Cells(cell.Row, 7)
    ElseIf cell.Value = "No" Then
        'first empty cell in sheet 3 (assuming column A always has a value)
        new_row = sheet3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        'sheet1-A to sheet3-B
        sheet3.Cells(new_row, 2) = sheet1.Cells(cell.Row, 1)
    End If
Next cell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...