重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
完整代码
Dim yearCount As Integer, yearAsk As Integer, i As Integer
yearCount = 0
yearAsk = Range("C4").Value
For i = 1 To 16
If Year(Cells(i, 1).Value) = yearAsk Then
yearCount = yearCount + 1
End If
Next i
MsgBox yearCount & " occurrences in year " & yearAsk逻辑说明
yearAsk从 C4 读取使用者想查询的年份- 循环走过第 1 到 16 行的日期数据
Year(Cells(i, 1).Value)取出这格日期的年份,跟yearAsk相等就把计数yearCount加 1- 因为
yearAsk是变量,使用者换个年份填进 C4、重新执行一次宏,就能查另一个年份出现几次,不用改代码
学完你会
常见错误
- 循环范围写死成
1 To 16,日期清单笔数变动后忘记同步调整 - C4 填的不是纯数字年份(比如打了文字),
yearAsk读到不合理的值,判断永远不成立 - 把
Year(...)忘记加上,直接拿整个日期去跟年份数字比较,永远不会相等
Sources
Blog / Website: