MICROSOFT

EP05. “Year Occurrences 统计某年份出现次数”

首页 Microsoft 工具 Excel · VBA · Date and Time · EP05
约 3 分钟· #EP05#Excel#Date and Time
🔒 登录后可标记已读
  • 写一个宏,统计一份日期清单里,某个指定年份总共出现了几次
  • 年份从单元格读取,换个年份重新执行就能查另一个年份,不用改代码
  • 前置知识:Year 函数的基本用法和 For 循环
  • 学完能自己写「按条件统计出现次数」的宏

重点内容


适用版本

桌面版通用(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、重新执行一次宏,就能查另一个年份出现几次,不用改代码

学完你会

  • ✅ 用 Year() 从日期里单独取出年份
  • ✅ 用变量存使用者输入的查询条件,让宏可以重复套用不同条件
  • ✅ 用循环 + 计数器统计符合条件的笔数

常见错误

  • 循环范围写死成 1 To 16,日期清单笔数变动后忘记同步调整
  • C4 填的不是纯数字年份(比如打了文字),yearAsk 读到不合理的值,判断永远不成立
  • Year(...) 忘记加上,直接拿整个日期去跟年份数字比较,永远不会相等

Sources

Blog / Website:

  1. Year Occurrences