열 머리글이 시간 간격이고 행 머리글이 사람 이름 인 테이블이있는 Excel 워크 시트가 있습니다. 가운데의 각 셀에는 드롭 다운 목록이 있습니다. 사용자가 각 셀의 드롭 다운에서 하나 이상의 옵션을 선택할 수 있도록 아래 코드를 입력했습니다.데이터 유효성 검사 코드 : 대상 범위 지정
코드가 제대로 작동하지만 전체 시트가 대상 범위가 아닌 시트의 영향을받습니다. 예를 들어 셀의 백 스페이스를 누르고 새 텍스트를 입력하여 열 머리글의 셀을 편집하려고하면 "6:30 am, 7:30 am"또는 "old value, new value "
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
' To Select Multiple Items from a Drop Down List in Excel
Dim Oldvalue As String
Dim Newvalue As String
On Error GoTo Exitsub
If Target.Range("E10:V600") Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
Target.Value = Oldvalue & ", " & Newvalue
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
내가 바로 그때 편집 다시 셀을 클릭하면 셀을 종료, 명확한 내용을 치고, 셀을 클릭하여이 문제를 피할 수 있습니다. 하지만이 문제를 방지하고 싶습니다. 내 코드가 어디에 잘못 되었습니까? 대상 범위는 작업 할 코드가 필요한 정확한 셀 범위입니다. 도움을 주셔서 미리 감사드립니다.
명시 ption 나는 또한 '개인 서브 Worksheet_Change (ByVal의 다른 이름으로 대상 범위)'변경해야합니까? – SRag
@SRag - 내 전체 코드 편집 –
을 읽어 주셔서 감사합니다. 이제 지정된 범위 내에서 내용을 지우거나 백 스페이스를 눌러 셀을 지울 수 없습니다. 대신 셀을 지우려고 할 때마다 셀이 "오래된 값"으로 서식을 지정합니다. 이 문제가 해결 되었습니까? – SRag