excel VBA是否允许从函数代码内部为单元格赋值?

ryoqjall  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(106)

我有一个VBA用户定义的函数。除了给函数赋值之外,我还需要给调用函数的单元格以外的单元格赋值。但是,当我尝试执行代码时,它失败了:错误#VALUE出现在调用函数的单元格中,而在另一个单元格中没有赋值。这是VBA Excel的限制还是我的代码中有错误?下面是代码示例:

Function zz()
    zz = "OK"
    Row = ActiveCell.Row
    col = ActiveCell.Column
    Cells(Row + 1, col) = "pippi"
End Function

多谢了。

cmssoen2

cmssoen21#

UDF可以返回一个数组,而不是尝试直接更新另一个单元格,该数组可以“自动溢出”到相邻的单元格中(取决于数组的方向)
https://www.contextures.com/excelspillformulaexamples.html
例如:

Function zz()
    Dim rv(1 To 2, 1 To 1)
    rv(1, 1) = "OK"
    rv(2, 1) = "pippi"
    zz = rv
End Function

注意:在UDF中,您可以使用Application.CallerApplication.ThisCell来引用包含公式的单元格。如果您使用ActiveCell,则不能保证它就是您想要的单元格。

相关问题