excel макросы для записи сотрудников

Я использую excel 2010.
У меня есть лист с именем «LOG», в котором есть журнал всего этого сотрудника:

Example Data

Теперь у меня есть другой лист с именем sheet1 .
Я бы хотел создать макрос, который должен указывать идентификатор сотрудника и месяц, а затем отобразить весь журнал этого сотрудника за этот конкретный месяц.

Я много пробовал, но не мог этого сделать.

1
nl ja de
@idevelop ... спасибо за подсказку. Просто принял ответы.
добавлено автор aki003, источник

1 ответы

Следующий код отобразит результаты в столбце, указанном константным значением RESULTS_COLUMN , просто добавьте следующий код на ваш рабочий лист. Вам также понадобятся три именованных диапазона - EmployeeCode , StartDate и EndDate -), чтобы вы могли всегда запрашивать их другим способом :

Sub DisplayRecords()

Const RESULTS_COLUMN As Long = 5

Dim strEmployeeCode As String
Dim dtStartDate As Date, dtEndDate As Date

Dim c As Range

    On Error GoTo ErrorTrap

    strEmployeeCode = [EmployeeCode]
    dtStartDate = [StartDate]
    dtEndDate = [EndDate]

    ' Clear the results column
    With Sheet1
        .Columns(RESULTS_COLUMN).ClearContents
        .Cells(1, RESULTS_COLUMN).Value = "Results"
        .Cells(1, RESULTS_COLUMN).Font.Bold = True
    End With

    For Each c In Sheet1.UsedRange.Columns(1).Cells
        If c.Value = strEmployeeCode And c.Offset(, 1) >= dtStartDate And c.Offset(, 1) <= dtEndDate Then
            ' Find the next available cell in results column
            Sheet1.Cells(Sheet1.Rows.Count, RESULTS_COLUMN).End(xlUp).Offset(1).Value = c.Offset(, 1).Value
        End If
    Next c

    Exit Sub

ErrorTrap:
    MsgBox "An error has occurred, please check input criteria", vbExclamation, ThisWorkbook.Name

End Sub
0
добавлено
Прости, пропустил этот бит. Обновил мой ответ соответственно
добавлено автор CrazyHorse, источник
Код обновлен, просто измените Sheet1.Cells (Sheet1.Rows.Count, RESULTS_COLUMN) .End (xlUp) .Offset (1) .Value на другой лист, если вы не хотите использовать Sheet1
добавлено автор CrazyHorse, источник
Другой вариант, который вы, возможно, пожелаете рассмотреть, который, скорее всего, будет выполняться намного быстрее при больших наборах данных, - это Advanced Filter: office.microsoft.com/en-us/excel-help/…
добавлено автор CrazyHorse, источник
Спасибо, брат, но как этот поисковый месяц. Я имею в виду, что это отобразит весь журнал, который есть для сотрудника. Я хочу, чтобы это шоу было для этого месяца для этого сотрудника.
добавлено автор aki003, источник
Нет проблем. Как разместить все содержимое msgbox в новом листе или листе2
добавлено автор aki003, источник
Спасибо брат. Большое спасибо.
добавлено автор aki003, источник