我正在使用 excel 2010。
我有一个名为“LOG”的工作表,其中有一个所有员工的日志,如下所示:
现在我有另一个名为sheet1
.
我想要的是一个宏,它应该提示输入员工 ID 和月份,然后显示该员工在该特定月份的所有日志。
我已经尝试了很多事情,但无法做到。
以下代码将列出RESULTS_COLUMN
常量值指定的列中的结果,只需将以下代码添加到您的工作表中即可。您还需要 3 个命名范围 -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