我对excel相对较新,需要一些建议。我使用excel 2016.我已阅读其他帖子,无法找到真正匹配的内容。有没有人知道如何连续一个单元格改变到今天的日期只有当该行中的任何其他单元格被更改时?其次,如果该单元格中的日期超过一周,并且同一行中另一个单元格的值为"打开"然后改变填充颜色?感谢您提供的任何见解。
答案 0 :(得分:0)
你需要一些VBA。使用Alt + F11进入Visual Basic编辑器(VBE)。在VBAProject(“项目”窗口中的工作簿)中,双击包含要在其中检测更改的单元格的工作表。然后添加以下::
Private Sub Worksheet_Change(ByVal Target As Range)
'Detect if cell A1 has had a change
If Not Intersect(Target, Range("A1")) Is Nothing Then
'Change cell B2 to todays date
Range("B2").Value = Now()
'Detect if value in cell C2 is changed to "Open"
ElseIf Not Intersect(Target, Range("C2")) Is Nothing Then
'Is the date in B2 older than a week from now?
If DateAdd("d", -7, Now()) > Range("B2").Value Then
'Change the cell color of B2
Range("B2").Interior.Color = RGB(0, 255, 255) 'Cyan... it's so beautiful
End If
End If
End Sub
该子例程是一个特殊的子例程,当任何单元格在放置子例程的工作表中更改值时,该子例程运行。我们检测是否对具有该可疑If Not Intersect(...
行的特定单元格进行了更改。然后,它是非常直接的VBA来改变单元格的值和颜色,并做一些日期算术和测试等等。