我很喜欢这个脚本,我可以使用该脚本将日期自动插入到输入值的下一个单元格中,但是我希望它不更改已经存在的日期。
当我将完成工作的任何人的姓名缩写输入到T3:T5003范围的单元格中时,日期将自动插入到U3:U5003范围内的相邻单元格中。问题在于,以后可能需要更改或修改T3:T5003中的条目,但我不希望更改原始日期。因此,我只希望这种自动插入仅在相邻单元格中没有任何内容时才起作用。
这是我正在使用的代码:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("T3:T5003"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
.Offset(0, 1).Activate
Else
With .Offset(0, 1)
.Value = Date
End With
End If
Application.EnableEvents = True
End If
End With
End Sub
我尝试了其他没有在现有日期写的脚本,但是它们还有其他问题,我很难理解它们的工作原理,所以我希望我们可以修改我自己编写的脚本。正在使用。但我会采取一切可行的措施,非常感谢您的帮助。
答案 0 :(得分:1)
我认为您只需要进行IF检查,右边的单元格是否为空:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("A1:A100"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
.Offset(0, 1).Activate
Else
If .Offset(0, 1).Value2 = "" Then
With .Offset(0, 1)
.Value = Date
End With
End If
End If
Application.EnableEvents = True
End If
End With
End Sub
答案 1 :(得分:1)
这应该做
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("T3:T5003"), .Cells) Is Nothing Then
If IsEmpty(.Offset(0, 1)) Then .Offset(0, 1).Value = Date
End If
End With
End Sub