Excel 循环引用

Excel 循环引用

简单的问题。我在 Excel 2007 中工作,当我在特定单元格中输入 1000g 时,我想将 1000 克转换为 1 千克。所以我决定创建下面的 if 语句。但是这有一个问题。它表明这是一个循环引用,并给我留下了 0 值。有没有简单的方法可以在 excel 中解决这个问题?

这是我的 if 语句。

=IF(C8 >= 1000,CONVERT(C8,"g","k"),C8)

说说大家的想法。

提前致谢。

答案1

  • 如果此公式在 C8 中

即使你像我一样打开迭代,你也无法解决这个问题https://stackoverflow.com/questions/7647312/using-max-min-functions-to-remember-highs-lows-in-dynamic-data-in-excel/7647609#7647609

这是因为添加函数将消除 C8 中已经存在的值(在我链接的 SO 示例中,公式可以正常工作,因为它可以查看自身)

  • 如果此公式不在 C8 中

那么它应该可以工作,并且你肯定在其他地方有循环引用。要查找并删除循环引用,请查看这里

答案2

为了向 brettdj 的答案添加一些额外的信息,如果您想在修改单元格时更改它,您最好使用活动流程例如Worksheet_Change()

Chip Pearson 关于此主题的网站

例如,你可以这样做:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C8")) Is Nothing Then
        Target.Value = Application.WorksheetFunction.Convert(Target.Value, "g", "k")
    End If
End Sub

笔记:我在 Excel 2003 中没有该Convert函数,我不知道它是 UDF 还是最近的函数。

答案3

你为什么不直接格式化单元格呢?

可以在 VBA 中访问数字格式属性 - 尝试以下操作:将 1000 放入单元格,然后从直接窗口 (alt+F11、ctrl+g) 键入

selection.numberformat="0,"" kg"""

这有帮助吗?

相关内容