Excel - 如何从公式中直接输入数据或单元格值

Excel - 如何从公式中直接输入数据或单元格值

我希望通过直接键输入来填充单元格值,或者从公式中得出单元格值。

例如:直接在单元格 A4 中输入数字,或者让 A4 的值 = A2 + A3

如果使用直接键盘输入,我不希望公式被覆盖。

谢谢,希望这能澄清一下。

答案1

一旦将值输入到单元格中,该单元格中的任何公式都将被覆盖。不过,您可以使用 VBA 例程来恢复公式。您的要求应该包括优先顺序的逻辑,即在什么情况下应使用公式以及在什么情况下手动输入的数字“获胜”。

以下代码在这些前提下有效:

  • 单元格 A2 或 A3 发生更改
  • A2 和 A3 都必须具有值

因此,当编辑 A2 或 A3 且两个单元格都包含值时,宏会将 =A2+A3 写入单元格 A4。如果 A2 或 A3 中的任何值是文本,则宏仍将运行,并且 Excel 将显示添加带有数字的文本的错误消息。使用 Sum() 可避免出现错误消息。

如果随后编辑单元格 A4 并覆盖公式,则该值将继续显示,直到再次编辑 A2 或 A3。

如果这不符合您的要求,请详细说明。

代码进入 Sheet 模块(右键单击 Sheet 选项卡,单击“查看代码”,将代码粘贴到大代码区域。)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A2:A3")) Is Nothing Then
    If WorksheetFunction.Count(Range("A2:A3")) = 2 Then
        Range("A4").Formula = "=A2+A3"
    End If
End If

End Sub

答案2

VBA 可以做到这一点,它需要在工作表 VBA 中,并且可能需要进行一些调整

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    With Target
        If .Count = 1 Then
            If .Column = 4 And .Row = 1 Then
                If IsEmpty(.Value) And .Offset(-1) <> "" AND .Offset(-2) <> "" Then
                    Application.EnableEvents = False
                    .FormulaR1C1 = "=A2+A3"
                    Application.EnableEvents = True
                End If
            End If
        End If
    End With
End Sub

相关内容