我正在使用Excel 2016电子表格,其中包含一些不同的工作表。手动数据更新与一个工作表上的复制粘贴方法一起使用,其他工作表运行数据分析公式。
现在假设数据不存在并且有几个人正在使用此文件,那么有一个问题是数据的新鲜程度以及是否应该进行更新。是否有一个公式可以用来记录特定单元格被覆盖时(对应于数据刷新的日期)?理想的是不使用VBA宏
没有宏,不确定你能获得细胞更改信息。但是,如果Row(在目标范围内)已更改,则可以使用宏来更新工作表中的特定列。
例如:
'place in the target worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
sh = ThisWorkbook.ActiveSheet.Name
If Not Intersect(Target, Range("A:B")) Is Nothing Then
For Each cell In Target
Call CellUpdate(sh, cell.Address, cell.Row, cell.Column)
Next
End If
End Sub
'place in a separate module
Sub CellUpdate(ByVal sheetName As String, ByVal cellName As String, ByVal cellRow As Long, cellColumn As Long)
' MsgBox (sheetName + " " + cellName+ " has been changed")
Dim lastChanger As String
lastChanger = ThisWorkbook.BuiltinDocumentProperties("Last author")
ThisWorkbook.Sheets(sheetName).Cells(cellRow, 3).Value = "changed at " + Format(Now(), "yyyy-MM-dd hh:mm:ss") + " by " + lastChanger
End Sub
您可以复制整个数据范围并将其保存在一个非常隐藏的工作表(控制表)中,该工作表从ddMmmYY开始称为最后一个活动值。并添加另一张名为ddMmmYY之后自上次活动值以来更改的内容,将每个单元格与每个人正在使用/刷新的活动工作表与控制工作表进行比较。