我想知道是否有人可以帮助我。
我正在使用下面的代码来跟踪对 Excel 工作表的更改,当 B5:Q2000 范围内的任何单元格的值发生更改时,会自动将日期插入“A”列,并将“否”一词插入“AE”列。
Option Explicit
Public preValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range, res As Variant
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
If Not Intersect(Target, Range("B5:Q2000")) Is Nothing Then
If Target.Value <> preValue And Target.Value <> "" Then
Application.EnableEvents = False
Range("A5:A" & Target.Row).Value = Date
Range("AE5:AE" & Target.Row).Value = "No"
Application.EnableEvents = True
Target.ClearComments
' Target.AddComment.Text Text:="Previous Value was " & preValue & Chr(10) & "Revised " & Format(Date, "dd-mm-yyyy") & Chr(10) & "By " & Environ("UserName")
Target.Interior.ColorIndex = 35
End If
End If
On Error GoTo 0
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then preValue = Target.Value
End Sub
不幸的是,我遇到了一个不知道如何解决的问题。
如果用户将数据插入单元格 D5 和 D10,则日期和单词“否”将添加到这两行的正确列(A 和 AE)中。
然而,不幸的是,即使用户没有在这些行上输入任何其他数据,我也不确定在这些行中添加了“否”值和日期,即 D6-D9 之间的行问题出在哪里。
我只是想知道是否有人可以看看这个并就我如何解决这个问题提供一些指导。
非常感谢和亲切的问候