我正在尝试根据某些单元格中是否发生任何更改,自动更新Excel工作表中的状态日期。在我的示例中,我希望单元格“S6”中的日期等于今天的日期,单元格中的任何数据“B6:L34”已被更改/删除/添加信息。我不确定要使用什么VBA代码或如何使用。有线索吗?这仅适用于该工作表上的那些单元格内的更改;整个工作簿中没有变化。谢谢。
答案 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
修改强>
要使其正常工作,请确保将此代码放在您正在使用的工作表中(请参阅下文):