엑셀 메크로 문의 합니다.

엑셀 메크로 문의 합니다.


엑셀 메크로 문의 합니다에 대해 답변드리겠습니다.

엑셀에서 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에 값 입력 시 자동으로 목록에 추가될 수 있습니다.

도움되셨나요? 채택 부탁드리며, 추가 질문은 채택해주시면 답변해드려요.

광고 [X]를 누르면 내용이 해제됩니다

AI 분석 및 채팅

3/3
시스템 리소스 로딩 중... 0%

여기를 클릭하면 빠른 로딩(가속)이 가능합니다.