![Excel에서 행의 중복 문자 제거](https://rvso.com/image/1638107/Excel%EC%97%90%EC%84%9C%20%ED%96%89%EC%9D%98%20%EC%A4%91%EB%B3%B5%20%EB%AC%B8%EC%9E%90%20%EC%A0%9C%EA%B1%B0.png)
나는 모든 행에 "x"(따옴표 제외)만 한 번만 입력할 수 있도록 노력하고 있습니다. 차라리 데이터 유효성 검사를 사용하고 싶지만 이것이 가능하지 않다면 VBA를 사용할 수도 있습니다. 데이터 유효성 검사와 같이 COUNTIF를 사용하여 여러 가지 작업을 시도했지만 행이 아닌 열에서 중복 항목을 제거하는 방법만 찾을 수 있습니다.
내가 무엇을 할 수 있는지에 대한 아이디어가 있습니까?
답변1
다음 워크시트 이벤트 매크로를 사용해 보세요.( 를 사용한다 COUNTIF()
):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wf As WorksheetFunction, v As Variant
Dim rng As Range, x As String
Set wf = Application.WorksheetFunction
v = Target.Value
Set rng = Target.EntireRow
x = "x"
If v <> x Then Exit Sub
If wf.CountIf(rng, x) > 1 Then
Application.EnableEvents = False
MsgBox "Too many x"
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
워크시트 코드이므로 매우 쉽습니다.설치하다자동으로 사용:
- Excel 창 하단 근처에 있는 탭 이름을 마우스 오른쪽 버튼으로 클릭합니다.
- 코드 보기를 선택하면 VBE 창이 나타납니다.
- 내용을 붙여넣고 VBE 창을 닫습니다.
고민이 된다면 먼저 시험 워크시트에서 시도해 보세요.
통합 문서를 저장하면 매크로도 함께 저장됩니다. 2003 이후 Excel 버전을 사용하는 경우 파일을 .xlsx가 아닌 .xlsm으로 저장해야 합니다.
에게제거하다매크로:
- 위와 같이 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
이 작업을 수행하려면 매크로를 활성화해야 합니다!
답변2
Gary의 답변을 자세히 설명합니다. 데이터 유효성 검사만으로는 이를 수행할 수 없으며 설명된 대로 정확하게 작동하려면 매크로가 활성화된 VBA가 필요합니다.
VBA를 피하려면 각 셀을 "x" 또는 "" 드롭다운 목록으로 제한하여 시작할 수 있습니다. 이제 조건부 서식을 사용하여 counta가 1보다 큰 경우 경고를 표시합니다. 그런 다음 사용자는 온난화가 사라질 때까지 추가 x를 수동으로 삭제해야 합니다.