我试图让两个单元格在用户输入后保留背景公式并具有循环公式。
A1 = Lbs
A2 = Kgs
Formula
A1 = A2*2.2
A2 = A1/2.2
我知道下面的线程,但我无法让它适用于循环公式。我已启用使用迭代计算。 Excel - 如何从公式中直接输入数据或单元格值
答案1
Excel 并不是这样工作的。
如果两个单元格都有公式,那么就没有地方获取输入值。这就是为什么循环引用不起作用的原因。
单元格可以有公式或值。如果您在有公式的单元格中输入值,公式将被覆盖。您要实现的目标至少需要 3 个单元格:一个用于输入值的单元格、一个用于输入单位的单元格以及一个用于输入转换结果的第三个单元格。您甚至可能想要添加第四个单元格来输入结果的单位。请看以下屏幕截图:
在 B2 中输入数值,在 C2 中指定数值的单位。在 B3 中计算换算
=IF(C2="lbs",B2/2.2,B2*2.2)
结果的单位在 C3 中用 计算=IF(C2="Kgs","Lbs","Kgs")
,但该位是可选的。
编辑:您可以使用 VBA 转换值并将其放置在另一个单元格中。不过,这可以在不将公式写入单元格的情况下完成。如果您已经使用 VBA,您不妨在 VBA 中进行计算,而不是使用 VBA 将公式写入单元格。以下是用于此目的的 VBA:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
If Target.Count = 1 Then
Application.EnableEvents = False
If Target.Row = 1 Then
Target.Offset(1, 0) = Target / 2.2
Else
Target.Offset(-1, 0) = Target * 2.2
End If
Application.EnableEvents = True
End If
End If
End Sub