如果单元格值大于同一单元格的上一个值,则使用Excel

如果单元格值大于同一单元格的上一个值,则使用Excel,excel,cell,Excel,Cell,我想给A1加一个值,当我改变A1时,我想把第一个输入的值保留在另一个单元格中 那可能吗 谢谢在工作表区域插入以下事件宏: Private Sub Worksheet_Change(ByVal Target As Range) Dim A As Range, N As Long Set A = Range("A1") If Intersect(Target, A) Is Nothing Then Exit Sub If Cells(1, 2).Value = ""

我想给A1加一个值,当我改变A1时,我想把第一个输入的值保留在另一个单元格中

那可能吗


谢谢在工作表区域插入以下事件宏:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range, N As Long
    Set A = Range("A1")
    If Intersect(Target, A) Is Nothing Then Exit Sub
    If Cells(1, 2).Value = "" Then
        N = 1
    Else
        N = Cells(1, 2).End(xlUp).Row + 1
    End If

    Application.EnableEvents = False
    A.Copy Cells(N, "B")
    Application.EnableEvents = True
End Sub
每次在A1中输入值时,该值将记录在B列的第一个可用单元格中

由于它是工作表代码,因此安装和自动使用非常容易:

  • 在Excel窗口底部附近的选项卡名称上单击鼠标右键
  • 选择查看代码-这将打开一个VBE窗口
  • 粘贴内容并关闭VBE窗口
  • 如果您有任何顾虑,请先在试用工作表上试用

    如果保存工作簿,宏将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

    要删除宏,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要了解有关宏的更多信息,请参阅:

    要了解有关事件宏(工作表代码)的详细信息,请参阅:


    必须启用宏才能工作

    这里是一个仅使用公式的解决方案。它要求您在Excel选项中打开迭代计算。 您可以将其设置为1次迭代

    您只需在B1中输入以下公式:

    =IF(ISBLANK(C1),IF(ISBLANK(A1),B1,IF(B1="",A1,B1)),"")
    
    A1是要记忆其值的单元,B1是记忆位置,C1是复位按钮

    • 只要C1为空,B1就会保存输入的第一个值 A1
    • 当您在C1中输入任何值时,B1将变为空并在中被阻止 这个州
    • 然后可以删除C1的内容,B1将再次响应。它将“捕获”当前的第一个值A1并将其保留,直到您再次重置它
    实际上,我想做的是自动复制/粘贴。我正在接收用于交换的数据,它每分钟都在更新,我需要的是将数据记录到A1并保留第一个数据作为参考,然后A1的数据将不会写入其中,以便我可以与第一个进行比较。非常感谢!这正是我想要的。我不太熟悉宏的“加里的学生”,但也感谢你!