엑셀 메크로 문의 합니다에 대해 답변드리겠습니다.
엑셀에서 A1 셀에 데이터를 입력할 때, 하단의 목록에 자동으로 입력되도록 하려면 VBA(Visual Basic for Applications)를 사용해야 합니다. 아래는 그 예제 코드입니다.
이 코드는 A1에 값이 입력될 때마다, 지정한 목록 범위에 해당 값을 추가하는 방식입니다. 가령, 목록 범위가 Sheet2의 B열이라고 가정하겠습니다.
1. 엑셀에서 ALT + F11을 눌러 VBA 편집기를 열기.
2. 왼쪽의 "Microsoft Excel Objects" 아래에 있는 해당 워크시트(예: Sheet1)를 더블 클릭.
3. 아래 코드를 복사해서 붙여넣기.
`vba
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ListRange As Range
Dim NewValue As String
Dim Found As Boolean
' A1 셀에 입력이 있었는지 확인
If Not Intersect(Target, Range("A1")) Is Nothing Then
Application.EnableEvents = False
NewValue = Trim(Target.Value)
If NewValue <> "" Then
' 목록이 저장될 범위 설정 (예시: Sheet2의 B열 마지막 빈 셀까지)
Set ListRange = Worksheets("Sheet2").Range("B1:B1000")
' 목록에 이미 존재하는지 체크
Found = Not IsError(Application.Match(NewValue, ListRange, 0))
' 목록에 없으면 추가
If Not Found Then
' 빈 셀 찾기
Dim EmptyCell As Range
Set EmptyCell = ListRange.Find(What:="*", SearchDirection:=xlPrevious)
If EmptyCell Is Nothing Then
' 첫 셀부터 시작
Set EmptyCell = ListRange.Cells(1)
Else
' 다음 빈 셀 위치
Set EmptyCell = EmptyCell.Offset(1, 0)
End If
' 값 저장
EmptyCell.Value = NewValue
End If
End If
Application.EnableEvents = True
End If
End Sub
`
이 코드의 작동 원리:
• A1에 내용이 입력되면, 내용을 체크하고 공백이 아니면
• Sheet2의 B열 범위 내에 이미 있는지 검색
• 없다면 마지막 빈 셀에 값을 추가
참고사항:
• 목록 범위(B1:B1000)는 필요에 따라 조정하세요.
• 이 코드를 적용하려면, 해당 워크시트 이름과 목록 저장 범위를 적절히 수정하세요.
• 매크로 활성화 상태를 확인해야 정상 작동합니다.
이 방식으로 A1에 값 입력 시 자동으로 목록에 추가될 수 있습니다.
도움되셨나요? 채택 부탁드리며, 추가 질문은 채택해주시면 답변해드려요.
AI 분석 및 채팅