MICROSOFT

EP03. “Month Names 月份名称自定义函数”

首页 Microsoft 工具 Excel · VBA · Array · EP03
约 4 分钟· #EP03#Excel#Array
🔒 登录后可标记已读
  • 用 EP02 的 Array 函数做一个实际案例:自己写一个叫 MONTHNAMES 的自定义函数
  • 这个自定义函数一次返回 12 个月份的英文缩写
  • 前置知识:EP02 的 Array 函数
  • 学完能理解怎么把「函数」跟「数组」结合起来用

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


建立自定义函数

  1. 打开 VBA 编辑器,插入一个新模块
  2. 输入以下代码:
Function MONTHNAMES()
    MONTHNAMES = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
End Function

在工作表里使用

  • 旧版本 Excel:先选中 12 个横向排列的单元格,输入 =MONTHNAMES(),按 Ctrl + Shift + Enter 确认(数组公式)
  • Excel 365 / 2021:只需要选中 1 个单元格,输入 =MONTHNAMES(),按 Enter,结果会自动「溢出(spilling)」铺满右边的单元格

📌 这个自定义函数只在建立它的这份工作簿里可以用。想清除结果,要选中整个范围再按 Delete


新旧版本用法怎么选

版本用法备注
旧版本 Excel先选 12 个横向单元格,输入公式后按 Ctrl + Shift + Enter传统数组公式写法
Excel 365 / 2021选 1 个单元格输入公式,按 Enter结果自动溢出(spilling)铺满右边

学完你会

  • ✅ 用自定义 Function 包一个 Array,一次返回一整批固定值
  • ✅ 分辨旧版数组公式(Ctrl + Shift + Enter)和新版溢出公式的用法差异
  • ✅ 知道自定义函数只在建立它的那份工作簿里可以用

常见错误

  • 旧版本 Excel 忘记先选好 12 个单元格、按 Ctrl + Shift + Enter,只在单一格输入会看不到完整结果
  • 想在其他工作簿里用 MONTHNAMES,忘记自定义函数是绑定在建立它的那份文件里的
  • 数组公式的结果想单独删除某一格,报错——要选中整个范围才能删除

Sources

Blog / Website:

  1. Month Names