엑셀 메크로 문의 합니다.

엑셀 메크로 문의 합니다.


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

​

엑셀에서 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%

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