Excel 2007 – 防止在单元格中input相同的数据,如上所述
我有一个Excel表格,允许用户input一个设置的格式,即C列为产品编号,H列为故障类别。
我想知道是否有可能阻止用户在C2和H2中input相同的值,如果它们已经存在于C1和H1中。
请注意,这是不可能的数据validation,因为这在列中查找唯一值 – 我没有任何问题,重复值两行,只要重复项不存在两列C&H ,在下一行。
我想要确保用户使用一行,如果产品有多个问题,但他们都涉及到相同的故障类别。
我不太了解VBA,所以你的帮助将不胜感激。
如果您将此VB添加到工作表模块它应该工作…
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 1 And Target.Column = 8 And Target.Rows.Count = 1 And Target.Columns.Count = 1 Then 'Search Down If Target.Offset(1, -5).Value <> "" Then r = Target.Offset(0, -5).End(xlDown).Row Do If Cells(r, 3).Value & Cells(r, 8).Value = Target.Offset(0, -5).Value & Target.Value Then MsgBox ("Duplicate Data detected below") Application.EnableEvents = False Target.Value = "" Application.EnableEvents = True Exit Do End If r = r - 1 Loop Until Target.Row = r End If 'Search Up r = 1 Do If Target.Offset(-r, -5).Value & Target.Offset(-r, 0).Value = Target.Offset(0, -5).Value & Target.Value Then MsgBox ("Duplicate Data detected above") Application.EnableEvents = False Target.Value = "" Application.EnableEvents = True Exit Do End If r = r + 1 Loop Until Target.Row = r End If End Sub
如果我正确读取您的请求, 可以使用单元validation完成:
将以下数据validation自定义公式应用于列C和H中的范围:
=COUNTIFS($H1:$H2,H1,$C1:$C2,C1)=1
显然,它不能在以前版本的Excel中没有SUMIFS
function。