2015-10-19 50 views
0

我在下面有这个功能。尝试设置该值会导致其失败。如果我注释掉它的价值部分按计划工作,但我需要在给出的单元格中显示其他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),"") 
+0

UDF只允许将值返回给调用的值。它不能设置另一个单元格的值。 –

+0

@ExcelHero我想我会不得不用宏来做到这一点呢? – deathismyfriend

+0

@ExcelHero,也许可以使用技术不太像你最近在另一个线程中的评论:-) http://stackoverflow.com/questions/8520732/i-dont-want-my-excel-add-in-to-return -an-array-instead-i-need-a-udf-to-change – MacroMarc

回答

0

这里的问题是,您正试图让UDF更改单元格的值而不是调用它的单元格。

按设计,这是不允许的。

而不是一个UDF,你应该使用一个子。