Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 用户定义函数的自动填充_Excel_Vba_Function - Fatal编程技术网

Excel 用户定义函数的自动填充

Excel 用户定义函数的自动填充,excel,vba,function,Excel,Vba,Function,我在VB编辑器的模块文件夹下有一个用户定义的函数。该函数根据C列、D列和E列中的值组合,执行大约20个If条件,计算F列中每个单元格的值 当我将函数作为公式包含在F1单元格中时,该函数返回计算值(即=calculateValue()。该函数不接受任何输入参数。基于活动行,它计算值并返回 但是当我双击F1单元格时(在调用用户定义函数之后),我编写的autofill语句不会填充F列其他单元格的值。它将与F1中相同的值复制到F列的其余单元格中。在调用函数时,F列的其他单元格似乎没有考虑它们各自的活动行

我在VB编辑器的模块文件夹下有一个用户定义的函数。该函数根据C列、D列和E列中的值组合,执行大约20个If条件,计算F列中每个单元格的值

当我将函数作为公式包含在F1单元格中时,该函数返回计算值(即=calculateValue()。该函数不接受任何输入参数。基于活动行,它计算值并返回

但是当我双击F1单元格时(在调用用户定义函数之后),我编写的autofill语句不会填充F列其他单元格的值。它将与F1中相同的值复制到F列的其余单元格中。在调用函数时,F列的其他单元格似乎没有考虑它们各自的活动行

Set targetRange = Range(StartRange, StartRange.Offset(0, -1).End(xlDown).Offset(0, 1))
Range("F1").AutoFill Destination:=targetRange

如果您将C、D和E列中的值作为参数传入,而不是直接从UDF中读取它们,那么您的UDF将工作得更好

=calculateValue(C1,D1,E1)

然后,您的UDF不需要知道活动行是什么(顺便说一句,当您以编程方式进行填充时,该行不会更改)

使用Sub而不是UDF()我是否能够像调用excel中单元格中的函数一样调用Sub?它能解决我面临的问题吗?我是VBA编程新手。请帮助除非UDF()返回数组,否则它只能向单个单元格返回单个值。