Excel - 用户输入但保留两个圆形单元格的公式

Jas*_*ady 4 microsoft-excel

我试图让两个单元格在用户输入后保留背景公式并有一个圆形公式。

A1 = Lbs
A2 = Kgs

Formula
A1 = A2*2.2
A2 = A1/2.2
Run Code Online (Sandbox Code Playgroud)

我知道下面的线程,但我无法让它适用于循环公式。我已启用优先使用迭代计算。 Excel - 如何从公式直接输入数据或单元格值

tey*_*lyn 6

Excel 不会像这样工作。

如果两个单元格都有公式,则无处可获取输入值。这就是为什么这不适用于循环引用。

一个单元格可以有一个公式或一个值。如果在具有公式的单元格中输入值,则公式将被覆盖。您要实现的目标至少需要 3 个单元格:值的输入单元格、单位的单元格和转换结果的第三个单元格。您甚至可能想要为结果单位添加第四个单元格。考虑这个截图:

数值在 B2 中输入,数值的单位在 C2 中指定。转换在 B3 中计算

=IF(C2="lbs",B2/2.2,B2*2.2)
Run Code Online (Sandbox Code Playgroud)

结果的单位在 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
Run Code Online (Sandbox Code Playgroud)