![드롭다운 메뉴를 사용하여 드롭다운 목록 옆의 셀을 변경합니다.](https://rvso.com/image/1585763/%EB%93%9C%EB%A1%AD%EB%8B%A4%EC%9A%B4%20%EB%A9%94%EB%89%B4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%93%9C%EB%A1%AD%EB%8B%A4%EC%9A%B4%20%EB%AA%A9%EB%A1%9D%20%EC%98%86%EC%9D%98%20%EC%85%80%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%A9%EB%8B%88%EB%8B%A4..png)
저는 vba를 처음 접했고 다음을 수행하는 프로그램을 만드는 데 관심이 있습니다. 드롭다운 메뉴에서 항목을 선택하면 선택한 드롭다운 목록 옆에 있는 셀에 특정 텍스트가 붙여넣어집니다.
예: 내 드롭다운 목록에 A 열에 COMMENT MOVE가 포함되어 있습니다.
"COMMENT"를 선택하면 B열에 "ENTER COMMENT"를 입력하고 싶습니다. "MOVE"를 선택하면 B열에 "ENTER MOVE TYPE"을 입력하고 C열에 "ENTER MOVE SPEED"를 입력하고 싶습니다.
드롭다운 메뉴 항목이 선택되는 기준으로 다른 셀에서 이 데이터를 사용하고 있으므로 드롭다운 메뉴를 선택할 때만 이러한 항목을 변경하고 싶습니다.
답변1
내가 올바르게 이해했다면 VBA나 함수만으로 이 작업을 수행할 수 있습니다. 내 예에서는 "COMMENT"와 "MOVE"를 포함하는 목록이 모두 있습니다 A1
.A4
나는 B1
그 기능을 가지고있다.=IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))
그리고 C1
함수 에서는=IF(A1="MOVE","ENTER MOVE SPEED","")
워크시트에서 VBA를 사용하고 있습니다 목록의 경우 A4
(시트를 마우스 오른쪽 버튼으로 클릭하고 "코드 표시" 선택)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range(Target.Address), Range("A4")) Is Nothing And Target.Count = 1 Then
If Target.Value2 = "MOVE" Then
Target.Offset(, 1).Value = "ENTER MOVE TYPE"
Target.Offset(, 2).Value = "ENTER MOVE SPEED"
ElseIf Target.Value2 = "COMMENT" Then
Target.Offset(, 1).Value = "ENTER COMMENT"
Target.Offset(, 2).Value = ""
Else
Target.Offset(, 1).Value = ""
Target.Offset(, 2).Value = ""
End If
End If
End Sub
나는 텍스트의 상대적 위치를 사용하고 있으므로 B
목록 C
위치 .Offset
에 따라 변경해야 하는 코드가 적습니다.