귀하의 질문에 대한 나의 이해를 바탕으로 VBA 솔루션을 제안합니다. 이 예제에서 샘플 열 범위는 H2 : H7이며이 범위에 대해 원하는 유효성 검사가 이미 적용되었습니다.
워크 시트에서 ALT + F11을 눌러 VBA 편집기에 액세스하십시오. 왼쪽 창에서 Microsoft Excel 개체를 참조하십시오. 그 아래에서 원하는 워크 시트를 두 번 클릭하여 Even Driven 프로그래밍 창을 엽니 다. 첫 번째 드롭 다운에서 워크 시트를 선택한 다음 두 번째 드롭 다운에서 변경을 선택하십시오. 워크 시트 변경 이벤트입니다. 코드 편집기에 다음 줄이 표시됩니다.
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
이 두 줄 사이에 다음 코드를 넣으십시오.
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then
Exit Sub
End If
Dim com As String
Dim comm1 As String
'Specify the range below. Set single column range else the code will error out
Set isect = Application.Intersect(Target, Range("H2:H7"))
If isect Is Nothing Then
Else
If Target.Value = "High" Or Target.Value = "Medium" Or Target.Value = "Low" Then
com = "Enter comment in " & Target.Offset(0, 1).Address(RowAbsolute:=False, columnabsolute:=False)
Do While comm1 = ""
comm1 = Application.InputBox(prompt:=com, Type:=2)
On Error GoTo myloop
If comm1 = False Then
comm1 = ""
End If
myloop:
On Error GoTo -1
Loop
Target.Offset(0, 1).Value = comm1
Else
Target.Offset(0, 1).Value = "" 'Remove this line if not desired
End If
End If
파일을 매크로 사용 Excel 통합 문서로 저장하십시오. 워크 시트로 돌아갑니다. 유효성 검사 목록 상자에서 원하는 값을 선택하여이 코드를 테스트하고 코드가 자신에게 적합하고 요구 사항을 충족하는지 확인하십시오. 이 코드에는 광범위한 오류 검사가 없을 수 있습니다.
내가 추가 한 작은 것은 나중에 상태를 통과로 변경하면 주석이 열 I에서 제거됩니다.