根据对其他单元格的更改,在EXCEL中更改日期

时间:2014-08-15 18:31:38

标签: vba auto-update

我正在尝试根据某些单元格中是否发生任何更改,自动更新Excel工作表中的状态日期。在我的示例中,我希望单元格“S6”中的日期等于今天的日期,单元格中的任何数据“B6:L34”已被更改/删除/添加信息。我不确定要使用什么VBA代码或如何使用。有线索吗?这仅适用于该工作表上的那些单元格内的更改;整个工作簿中没有变化。谢谢。

2 个答案:

答案 0 :(得分:0)

我会查看整个互联网上的工作簿/工作表事件。您可以创建私有子功能,只要进行更改,它们就会自动运行。听起来你需要一个private sub worksheet_selection或worksheet_change事件处理程序。查找简单的东西,例如" workbook_open VBA excel"对于事件处理程序的工作方式,你可以得到一个很棒的触角。

然后我建议您研究INTERSECT功能并使用它。它允许你声明一个TARGET变量和范围供你操作,基本上说如果在该范围内发生任何事情,这就是我想操纵TARGET的方式。 TARGET基本上是在该范围内被操纵的细胞。

可能还有其他因素 - 但这会让你很快开始

答案 1 :(得分:0)

此代码将在今天的日期更新单元格S6,此时B6:L34范围内的任何内容都已编辑。

Private Sub Worksheet_Change(ByVal Target As range)
    If Not Intersect(Target, Target.Worksheet.range("B6:L34")) Is Nothing Then
        Sheets("Sheet1").Range("S6") = Date
    End If
End Sub

修改

要使其正常工作,请确保将此代码放在您正在使用的工作表中(请参阅下文):

enter image description here