我想通过excel宏来实现这个目标:
在我的工作簿Sheet1
中,通过公式在范围(A2:H20
)中输入值。
我还有Range(J2:P20
),它会跟踪Range(A2:H20
)中值的变化,并使用此格式dd-mmm-yyyy
的日期戳。
现在我想这样做:
A2
中的值更改,则日期戳应反映在J2
A3
中的值更改,则日期戳应反映在J3
B2
中的值更改,则日期戳应反映在K2
B3
中的值更改,则日期戳应反映在K3
这与那些范围内的其他细胞相同。
日期戳应替换其各自单元格中的任何现有日期(如果存在)。
如果范围(A2:H20
)中的任何单元格为=0
或为空,则相应单元格中不应存在日期戳。
答案 0 :(得分:0)
这是一个仅针对单元格A2 / J2进行处理的示例。如果要在整个范围内使用它,则必须扩展代码。下面的代码位于工作表的“Worksheet_Change”过程中。部分示例来自Microsoft
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
'Code Example from Microsoft.com
'http://support.microsoft.com/kb/213612
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A2:H20")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
'MsgBox "Cell " & Target.Address & " has changed." <--- Original Microsoft Example
'Code to Check Value/Status of A2
If Target.Address = "$A$2" Then
If Range("A2").Value <> "" Then
Range("J2").Value = Now()
Else
Range("J2").Value = ""
End If
End If
End If
End Sub