打开VBA界面

新建Excel,Alt+F11打开VBA编辑界面,左侧在当前的WorkBoot中任意对象上点右键,插入->模块
然后双击模块,就能写VBA了,一般分为Sub和Function两种

普通VBA函数

在VBA中写函数:

  1. Function f()
  2. f=1
  3. End Function

即可在单元格中写=f(),显示为1

返回数组的VBA函数

在VBA中改成:

  1. Function f() As Variant
  2. Dim arr(1 To 3, 1 To 2) As Long
  3. arr(1, 1) = 200
  4. arr(1, 2) = 400
  5. arr(2, 1) = 600
  6. arr(2, 2) = 800
  7. arr(3, 1) = 1
  8. arr(3, 2) = 2
  9. f = arr
  10. End Function

即可在单元格中写=f(),显示出整个数组
然而返回值不只一个单元格,它会自动扩展显示到其他单元格

如果要指定输出到哪些单元格,避免溢出,可以选中这3x2的6个单元格,在公式中输入=f(),然后按Ctrl+Shift+Enter即可,这些单元格就变成了数组,不能单独改变其中一个,只能全选中再修改或删除。

数组作为公式输入

Poisson.DIST接受单元格区域作为输入,可以生成一组输出