Excel 使用范围设置值会导致公式失败

Excel 使用范围设置值会导致公式失败,excel,excel-formula,vba,Excel,Excel Formula,Vba,我在下面有这个函数。试图设置该值会导致它失败。如果我注释掉值部分,它将按计划工作,但我需要在给定的单元格中显示其他2个值。我得到了#值!未注释掉它们时出错。谢谢你的帮助 Function GetAreas(str As String, Optional ttl1 As Range, Optional ttl2 As Range) As String ttl1.Value = 250 ttl2.Value = 200 GetAreas = str End Function

我在下面有这个函数。试图设置该值会导致它失败。如果我注释掉值部分,它将按计划工作,但我需要在给定的单元格中显示其他2个值。我得到了#值!未注释掉它们时出错。谢谢你的帮助

Function GetAreas(str As String, Optional ttl1 As Range, Optional ttl2 As Range) As String
    ttl1.Value = 250
    ttl2.Value = 200
    GetAreas = str
End Function
我用这样的公式调用函数

=IF($H3<>"",GetAreas($H3, $J3, $K3),"")
=IF($H3”),GetAreas($H3,$J3,$K3),“”)

这里的问题是,您试图让自定义项更改调用它的单元格以外的单元格的值

根据设计,这是不允许的


您应该使用Sub,而不是UDF。

UDF只允许将值返回到调用的。它不能设置另一个单元格的值。@ExcelHero我猜我必须使用宏来实现这一点吗?@ExcelHero,也许可以使用与您最近在另一个线程中的评论不太相似的技术:-)@deathismyfriend是。@MacroMarc可能,但我不建议在这种情况下使用它。我相信工作表函数的设计目标。