[英]How can I make a custom sort to be updated automatically when update a cell value in Excel?
[英]How to make the value of a cell change when the date is updated?
在单元格“S1”中,我有今天带来的公式。
我需要当这个公式更新时,单元格“T3”的值自动返回到0。
在我测试的代码中,它只有在我手动更改值时才有效,但我需要它自动发生。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("S1")) Is Nothing Then
Range("T3").Value = 0
End If
End Sub
上面的代码发生在我手动更改单元格 S1 的日期时,但这不是我要寻找的,所以我知道我需要在 Worksheet Calculate 事件中执行此操作,但我不知道代码。
我设法以另一种方式做到了!
我在 Workbook 中打开了这段代码,这样每当它打开时,它就会获取今天的日期并将其放入单元格S2
中。
Private Sub Workbook_Open ()
Sheets("Sheet1").Range("S2").Value = Date
End Sub
我在宏中制作的另一个代码使用了我放置的这个T3
单元:
If Range("S1").Value <> Range("S2").Value Then
Range("T3").Value = 0
Range("S2").Value = Date
End If
并解决了! 谢谢大家的帮助!
S1
中的值或通过VBA
写入,则应使用Worksheet Change event
。S1
中有公式,则可以使用Worksheet Calculate event
。 标准模块,例如Module1
Option Explicit
Private Const SheetName As String = "Sheet1"
Private Const sCell As String = "S1"
Private Const tCell As String = "T3"
Private Const tValue As Long = 0
Private sValue As Date
Sub populateSrc()
sValue = ThisWorkbook.Worksheets(SheetName).Range(sCell).Value
MsgBox "Today's Date is '" & sValue & "'."
End Sub
Sub checkValue(WorksheetObject As Worksheet)
On Error GoTo cleanExit
Application.EnableEvents = False
If WorksheetObject.Range(sCell).Value <> sValue Then
WorksheetObject.Range(tCell).Value = tValue
sValue = WorksheetObject.Range(sCell).Value
End If
cleanExit:
Application.EnableEvents = True
End Sub
ThisWorkbook
Option Explicit
Private Sub Workbook_Open()
populateSrc
End Sub
工作表模块,例如Sheet1
Option Explicit
Private Sub Worksheet_Calculate()
checkValue Me
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.