Function 如何在带有函数的单元格中编写公式?

Function 如何在带有函数的单元格中编写公式?,function,excel,vba,Function,Excel,Vba,我想用一个函数在特定的单元格中写一个公式 我写过这篇文章,但它不起作用,我不明白为什么: Function formulaCell(x, y) ActiveSheet.Cells(x, y).FormulaR1C1 = "=IF(R[-1]C=0,"""",R[-1]C)" End Function Excel返回#VALEUR 提前感谢如果函数不是从单元格调用的,您的函数将正常工作。例如,这里是从子节点调用的: Sub MAIN() Dim msg As String m

我想用一个函数在特定的单元格中写一个公式

我写过这篇文章,但它不起作用,我不明白为什么:

Function formulaCell(x, y)

ActiveSheet.Cells(x, y).FormulaR1C1 = "=IF(R[-1]C=0,"""",R[-1]C)"

End Function
Excel返回#VALEUR


提前感谢

如果函数不是从单元格调用的,您的函数将正常工作。

例如,这里是从子节点调用的:

Sub MAIN()
    Dim msg As String
    msg = formulaCell(3, 3)
    MsgBox msg
End Sub

Function formulaCell(x As Long, y As Long) As String
    ActiveSheet.Cells(x, y).FormulaR1C1 = "=IF(R[-1]C=0,"""",R[-1]C)"
    formulaCell = "Mission Accomplished!!"
End Function

单元格中的UDF()只能向该单元格返回值。子系统中的UDF()可以做得更多

等等。您是否将一个公式写入一个单元格,以便它更改其他单元格中的公式?这是一个“您无法从此处到达”的情况。函数旨在(并限制)将值返回到其来源的单元格中。它们不能更改其他单元格中的值或公式。TBH,我记得有人克服了这个问题,通过在函数中调用一个公共子宏来改变另一个单元格的颜色,但从未在单元格中插入公式。@Jeeped:这就是你想的吗@Jean-FrançoisCorbett-虽然我相信我看到的是TechNet Excel邮件列表中的一个,但这一个看起来非常接近,而且似乎是相同的时间范围。@Crapsy你需要阅读一些VB文档:函数需要创建一个asingment,所以代码需要:
formulaCell=“Something”
来解释#VALEUR