如何修改VBA代码排除前3行,允许表头存在重复值?
修改VBA代码:排除前3行的重复值检查
原代码用于监控E、G、I、K、M、O、Q、S列的单元格修改,阻止该行出现重复值。现需调整逻辑,让前3行(表头区域)不受重复值限制,仅对第4行及以后的内容执行检查。
修改后的代码如下:
Private Sub Worksheet_Change(ByVal Target As Range) ' 跳过多单元格批量修改、空值修改、非目标列的修改 If Target.Cells.Count > 1 Then Exit Sub If Target.Value = "" Then Exit Sub If Intersect(Target, Range("E:E, G:G, I:I, K:K, M:M, O:O, Q:Q, S:S")) Is Nothing Then Exit Sub ' 前3行不执行重复值检查,直接退出 If Target.Row <= 3 Then Exit Sub ' 检查当前行是否存在重复值 If Application.CountIf(Target.EntireRow, Target.Value) > 1 Then Application.EnableEvents = False Application.Undo MsgBox "该行不能出现重复值!" Application.EnableEvents = True End If End Sub
修改说明
- 新增
If Target.Row <= 3 Then Exit Sub判断:当修改的单元格位于前3行时,直接终止程序,跳过重复值校验逻辑,保留表头区域的重复值。 - 调整提示框文本为中文,适配中文使用场景。
内容的提问来源于stack exchange,提问作者indika prasanna
相关产品推荐
相关产品推荐

