我想要做的是:
如果(C19 改变值;E24=TODAY();不执行任何操作)
我明白这必须在 VBA 中完成。网上的示例与我想要做的(那些使用偏移等的示例)不同。我如何在 excel 中做到这一点?
提前致谢,
缺口
答案1
可能的 VBA 解决方案(简单但不是最佳的)
在公共模块中:
Public Current_C19_Formula As String
在工作簿模块中:
Private Sub Workbook_Open()
Current_C19_Formula = ThisWorkbook.Sheets("Sheet1").Range("C19").Formula
End Sub
在工作表模块中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(ThisWorkbook.Sheets("Sheet1").Range("C19"), Target) Is Nothing) Then
If Current_C19_Formula <> ThisWorkbook.Sheets("Sheet1").Range("C19").Formula Then
ThisWorkbook.Sheets(1).Range("E24").Value = Date
Current_C19_Formula = ThisWorkbook.Sheets("Sheet1").Range("C19").Formula
End If
End If
End Sub
您必须考虑到导致 E24 重新分配的 C19 中的每个更改都会清除应用程序的撤消缓冲区。