
3개의 열(A, B, C)이 각 행의 고유 식별자를 형성하는 Excel 시트가 있지만 열의 값은 고유하지 않습니다. 예를 들어:
ABC REF 001
ABC REF 002
ABC REF 003
ABC DOC 001
ABC DOC 002
ABC DOC 003
위의 행은 동일한 값 조합을 갖는 행이 없기 때문에 유효합니다(예: B 열과 C 열의 중복이 있더라도 "ABC REF002"가 있는 두 행은 없습니다).
사용자가 다른 행의 조합과 일치하는 열 A, B, C에 값 조합을 입력하면 유효성 검사 오류가 발생하도록 Excel 유효성 검사를 추가하려면 어떻게 해야 합니까?
답변1
워크시트 코드 영역에 다음 이벤트 매크로를 입력합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long, st As String, J As Long, k As Long
Dim CH As String
If Intersect(Range("A:C"), Target) Is Nothing Then Exit Sub
CH = Chr(1)
I = Target.Row
J = Cells(Rows.Count, 1).End(xlUp).Row
st = Cells(I, 1).Text & CH & Cells(I, 2).Text & CH & Cells(I, 3).Text
For k = 1 To J
If k <> I Then
stk = Cells(k, 1).Text & CH & Cells(k, 2).Text & CH & Cells(k, 3).Text
If st = stk Then
MsgBox "Combination already in use:" & vbCrLf & stk
Exit Sub
End If
End If
Next k
End Sub
워크시트 코드이므로 설치가 매우 쉽고 자동으로 사용됩니다.
- Excel 창 하단 근처에 있는 탭 이름을 마우스 오른쪽 버튼으로 클릭합니다.
- 코드 보기를 선택하면 VBE 창이 나타납니다.
- 내용을 붙여넣고 VBE 창을 닫습니다.
고민이 된다면 먼저 시험 워크시트에서 시도해 보세요.
통합 문서를 저장하면 매크로도 함께 저장됩니다. 2003 이후 버전의 Excel을 사용하는 경우 파일을 다음 형식으로 저장해야 합니다..xlsm오히려.xlsx
매크로를 제거하려면:
- 위와 같이 VBE 창을 불러옵니다.
- 코드를 지워라
- VBE 창을 닫습니다
일반적인 매크로에 대해 자세히 알아보려면 다음을 참조하세요.
http://www.mvps.org/dmcritchie/excel/getstarted.htm
그리고
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
이벤트 매크로(워크시트 코드)에 대해 자세히 알아보려면 다음을 참조하세요.
http://www.mvps.org/dmcritchie/excel/event.htm
이 작업을 수행하려면 매크로를 활성화해야 합니다!