-1

我正在使用 excel 2010。
我有一个名为“LOG”的工作表,其中有一个所有员工的日志,如下所示:

示例数据

现在我有另一个名为sheet1.
我想要的是一个宏,它应该提示输入员工 ID 和月份,然后显示该员工在该特定月份的所有日志。

我已经尝试了很多事情,但无法做到。

4

1 回答 1

0

以下代码将列出RESULTS_COLUMN常量值指定的列中的结果,只需将以下代码添加到您的工作表中即可。您还需要 3 个命名范围 -EmployeeCodeStartDate-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
于 2012-12-28T11:50:21.920 回答