EXCEL自定义函数,如果编写的函数不用参数传导机制,如何直接在函数里面引用单元格区域

比如,现在我写一个函数:Function df(a)
d = a.Cells(1, 1)
df = d
End Function

然后我在某个单元格引用这个函数:=df(A1:D15)
这样单元格区域A1到D15就被我以参数“a”的形式传导到了函数里,然后我在函数里取出了这个区域的第一行第一列的值
现在我的问题是,如何不用参数传导机制,即在函数里我不加参数,直接Function df()这样有什么方法能引用区域A1:D15?

第1个回答  2013-02-08
对宏不是很了解,交流下:
参数a的传导,在我看来只不过是在df函数内加入了可变因素,如果此函数只需要固定的返回A1:D15,则不用参数也可以实现。
若函数本身是需要返回不同结果,在单元格直接输入df,怎么实现可变?
通过单元格的行、列信息来实现可变么?你到是可以试下。本回答被网友采纳
第2个回答  2013-02-09
你的意思是:引用 相对于 使用函数的单元格 间隔m行n列的 单元格区域
试试下面的程序:
Function df()
Dim m, n
m = 1
n = 2
df = Application.ThisCell.Cells(m, n).Address
End Function
第3个回答  2013-02-08
Function df()
Dim d As Variant
d = Range("A1:D15")
df = d(1, 1)
End Function
相似回答