1

У меня есть рабочий лист с идентификаторами сотрудников вверху и датами сбоку.

Затем мне нужно ставить там букву Y или N каждый день, когда у меня 96 сотрудников, так что это действительно долго. Есть ли в наличии кнопка или макрос, который, если человек получает Y, может скопировать этих людей на другой лист, и если кто-то новый получит Y, он также перенесет их. Так что проще сузить людей с Y

http://i.imgur.com/tNc2Nan.jpg

1 ответ1

1

Этот VBa делает то, что я думаю, что вы хотите ... Ваш вопрос не самый ясный.

Помните, с VBa, сначала создайте копию файла, так как он не имеет функции отмены

Option Explicit

Sub FindYeTheMapOfTreasure()


Worksheets("Sheet2").Range("A:F").Clear
Worksheets("Sheet2").Range("A:B").Value = Worksheets("Sheet1").Range("A:B").Value


    Dim row As Integer
    row = 2

    Do While Worksheets("Sheet1").Range("C" & row).Value <> ""

    If Worksheets("Sheet1").Range("C" & row).Value = "Y" Then
        Worksheets("Sheet2").Range("C:C").Value = Worksheets("Sheet1").Range("C:C").Value
    End If

    If Worksheets("Sheet1").Range("D" & row).Value = "Y" Then
        Worksheets("Sheet2").Range("D:D").Value = Worksheets("Sheet1").Range("D:D").Value
    End If

    If Worksheets("Sheet1").Range("E" & row).Value = "Y" Then
        Worksheets("Sheet2").Range("E:E").Value = Worksheets("Sheet1").Range("E:E").Value
    End If

    If Worksheets("Sheet1").Range("F" & row).Value = "Y" Then
        Worksheets("Sheet2").Range("F:F").Value = Worksheets("Sheet1").Range("F:F").Value
    End If

    If Worksheets("Sheet1").Range("G" & row).Value = "Y" Then
        Worksheets("Sheet2").Range("G:G").Value = Worksheets("Sheet1").Range("G:G").Value
    End If
    row = row + 1
    Loop


End Sub

Лист1

После запуска sheet2 выглядит

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .