【问题标题】:How to write a formula in a cell with a function? [duplicate]如何在具有函数的单元格中编写公式? [复制]
【发布时间】:2015-05-07 20:57:08
【问题描述】:

我想在具有函数的特定单元格中编写一个公式。

我已经写了这个,但它不起作用,我不明白为什么:

Function formulaCell(x, y)

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

End Function

Excel 返回 #VALEUR

提前致谢

【问题讨论】:

  • 等等。您是否将公式写入单元格以更改其他单元格中的公式?
  • 这是一个“你不能从这里到达那里”的例子。函数旨在(并且受限制)将值返回到它们所在的单元格中。它们不能更改其他单元格中的值或公式。 TBH,我记得看到有人通过从函数中调用公共子宏来克服这个问题来改变另一个单元格的颜色,但从不将公式插入到单元格中。
  • @Jeeped:这就是你的想法吗? Using a UDF in Excel to update the worksheet
  • @Jean-FrançoisCorbett - 虽然我相信我看到的那个是在 TechNet Excel 邮件列表中,但那个看起来非常接近,而且似乎是同一时间框架。
  • @Crapsy 您需要阅读一些 VB 文档:函数需要进行 asingnment 所以代码需要:formulaCell = "Something" 说明 #VALEUR

标签: function excel vba


【解决方案1】:

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

例如,这里是从 Sub: 调用

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() 只能向该单元格返回一个值。 Sub 中的 UDF() 可以做得更多!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多