Excel 单元格公式

Excel 单元格公式

我需要一个 excel 中的公式,将值从单元格 A1 复制并显示到 B1,如果单元格 A1 的值从正值更改为零,则单元格 B1 中的值不得改变,它必须保留其先前的值(始终大于零)。该值是数字。

答案1

这不能仅通过公式来实现。但使用以下 VBA 代码,它基于SelectionChange 事件, 有用:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Const SourceCell = "$A$1"
    Const TargetCell = "$A$2"

    If Target.Address = SourceCell Then
        If Range(SourceCell).Value > 0 Then
            Range(TargetCell).Value = Range(SourceCell).Value
        End If
    End If
End Sub

或者,如果您想要拥有更多的源单元和目标单元(稍后请求):

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Dim SourceCells(), TargetCells() As Variant
    Dim i As Integer

    ' Make sure the cells are declared with $'s
    ' Make sure that the arrays contain the same number of elements
    SourceCells = Array("$B$1", "$B$2", "$F$5")
    TargetCells = Array("$A$1", "$A$2", "$H$12")

    For i = 0 To UBound(SourceCells)
        If Target.Address = SourceCells(i) Then
            If Range(SourceCells(i)).Value > 0 Then
                Range(TargetCells(i)).Value = Range(SourceCells(i)).Value
            End If
        End If
    Next i

End Sub

将此代码放入工作表您希望在哪里完成此操作。为此,请按照以下说明进行操作:

  • 在 Excel 中,打开工作簿后,点击ALT+ F11。这将打开 VBA 编辑器。
  • 检查左侧的“项目”树,找到您的 Excel 工作簿和工作表。用鼠标右键单击该工作表并选择View Code
  • 将上面的代码复制粘贴到编辑器中。
  • 关闭 VBA 编辑器,一切都将按预期工作。

相关内容