
다음 열이 있습니다
A | B
Name | Value
One | 1
Two | 2
Three | 3
C열에는 이름과 값의 연결(예: One - 1, Two - 2 등)을 표시하는 유효성 검사 드롭다운 목록이 필요합니다. 사용자가 선택하면(예: 2 - 2) 값 열의 데이터만 셀에 채워집니다(예: 2).
이 업적을 어떻게 달성합니까?
답변1
다음과 같은 데이터로:
다음 VBA 매크로를 표준 모듈에 배치하고 실행합니다.
Sub DV_Maker()
Dim i As Long
Dim s As String
For i = 2 To 4
s = s & "," & Cells(i, 1) & " - " & Cells(i, 2)
Next i
s = Mid(s, 2)
With Range("C2:C4").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=s
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = False
End With
End Sub
셀에 대한 데이터 유효성 검사를 설정합니다.C2,C3, 그리고C4. 그런 다음 이 이벤트 매크로를 워크시트 코드 영역에 배치합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("S2:C4")
If Intersect(Target, rng) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Value = Split(Target.Value, " - ")(1)
Application.EnableEvents = True
End Sub
이벤트 매크로는 데이터가 입력된 후 셀에서 텍스트를 제거합니다.