我有一个VBA用户定义的函数。除了给函数赋值之外,我还需要给调用函数的单元格以外的单元格赋值。但是,当我尝试执行代码时,它失败了:错误#VALUE出现在调用函数的单元格中,而在另一个单元格中没有赋值。这是VBA Excel的限制还是我的代码中有错误?下面是代码示例:
Function zz()
zz = "OK"
Row = ActiveCell.Row
col = ActiveCell.Column
Cells(Row + 1, col) = "pippi"
End Function
多谢了。
1条答案
按热度按时间cmssoen21#
UDF可以返回一个数组,而不是尝试直接更新另一个单元格,该数组可以“自动溢出”到相邻的单元格中(取决于数组的方向)
https://www.contextures.com/excelspillformulaexamples.html
例如:
注意:在UDF中,您可以使用
Application.Caller
或Application.ThisCell
来引用包含公式的单元格。如果您使用ActiveCell
,则不能保证它就是您想要的单元格。