【发布时间】:2015-12-29 19:43:44
【问题描述】:
我正在学习 Excel VBA,正在尝试创建一个简单的函数。
我的想法是我将使用一个单元格作为输入,该函数会告诉您该单元格周围 12 个值的标准偏差。
因此,如果我输入 getstd(A1),它将得到 A1、A3、A5、A7、C1、C3、C5、C7 和 E1、E3、E5 和 E7 的标准差。
如果我输入 getstd(X23),它将获得 12 个其他值的标准值,这些值位于 X23 周围的相同偏移处。
我现在最大的问题是弄清楚如何使用单元格作为输入。
例如,在尝试偏移时:
Function getstd(rng as Range)
Range(rng).Offset(1,1) = "hello world"
End Function
它总是给我一个 #Value 错误。
我觉得如果我可以让它工作,那么创建我的函数应该很容易。
谢谢!
迈克尔
【问题讨论】:
-
Range(rng).Offset(1,1只做rng.Offset(1,1) -
虽然@findwindow 说的是正确的语法,但UDF 不会更改与调用者不同的单元格的值(没有一些时髦的回避)。要了解偏移量,请将行更改为
getstd = rng.offset(1,1).value,它将返回指定范围的下一行和上一列的值。 -
永远听斯科特的声音。
-
@findwindow 刚试过。仍然给我一个#Value 错误。在单元格 W23 中,我键入
=getstd(X12),我希望它会在单元格 Y13 中输入“hello world”,但它没有... -
@ScottCraner 谢谢,是的,这很有道理。