Excel에서 입력 할 때 텍스트 상자를 자동 완성하는 방법은 무엇입니까?
기본적으로 Excel은 현재 워크 시트의 셀에 입력 한 내용을 기억하고 다음에 관련 첫 글자를 새 셀에 입력 할 때이 내용을 자동 완성 할 수 있습니다. 그러나 워크 시트에 입력 한 모든 내용이 텍스트 상자 (ActiveX Control)에 자동 완성되도록하려면 어떻게해야합니까? 이 기사에서는 내부에 첫 글자를 입력 할 때 텍스트 상자를 자동 완성하는 데 도움이되는 VBA 방법을 제공합니다.
- 무엇이든 재사용 : 가장 많이 사용되거나 복잡한 수식, 차트 및 기타 항목을 즐겨 찾기에 추가하고 나중에 빠르게 재사용 할 수 있습니다.
- 20 개 이상의 텍스트 기능 : 텍스트 문자열에서 숫자 추출; 텍스트의 일부 추출 또는 제거 숫자와 통화를 영어 단어로 변환합니다.
- 병합 도구: 여러 통합 문서와 시트를 하나로; 데이터 손실없이 여러 셀 / 행 / 열 병합; 중복 행과 합계를 병합합니다.
- 분할 도구: 값을 기준으로 데이터를 여러 시트로 분할합니다. 하나의 통합 문서에서 여러 Excel, PDF 또는 CSV 파일로; 한 열에서 여러 열로.
- 붙여 넣기 건너 뛰기 숨겨진 / 필터링 된 행; 수와 합계 배경색 별; 개인화 된 이메일을 여러 수신자에게 대량으로 보냅니다.
- 슈퍼 필터 : 고급 필터 구성표를 만들고 모든 시트에 적용하십시오. 종류 주, 일, 빈도 등으로; 필터 굵게, 수식, 주석으로 ...
- 300개 이상의 강력한 기능; Office 2007-2021 및 365에서 작동합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다.
VBA 코드로 입력 할 때 텍스트 상자 자동 완성
텍스트 상자에 첫 글자를 입력 할 때 텍스트 상자가 자동 완성되도록하려면 다음과 같이하십시오.
1. 클릭하여 텍스트 상자를 삽입하십시오 개발자 > 끼워 넣다 > 텍스트 상자 (ActiveX 컨트롤). 스크린 샷보기 :
2. 그런 다음 개발자 > 끼워 넣다 > 목록 상자 (ActiveX 컨트롤) 현재 워크 시트에 목록 상자를 삽입합니다. 스크린 샷보기 :
3. 시트 탭을 마우스 오른쪽 단추로 클릭 한 다음 코드보기 아래 스크린 샷과 같이 컨텍스트 메뉴에서.
4. 에서 응용 프로그램 용 Microsoft Visual Basic 창에서 VBA 코드 아래에 복사하여 코드 창에 붙여 넣으십시오. 그런 다음 도구 > 참조을 클릭 한 다음 Microsoft 스크립팅 런타임 상자에 참조 – VBAProject 대화 상자. 스크린 샷보기 :
VBA 코드 : 입력시 텍스트 상자 자동 완성
Dim xRg As Range
Dim xDic As New Dictionary
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.TextBox1.Value = Me.ListBox1.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xVal As String
On Error Resume Next
If IsNumeric(Target.Value) Then
xVal = Str(Target.Value)
Else
xVal = Target.Value
End If
If xVal <> "" Then
If Not xDic.Exists(xVal) Then
xDic.Add xVal, xVal
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.ListBox1.Visible = False
End Sub
Private Sub Worksheet_Activate()
Dim I As Long
Dim xStr As String
On Error Resume Next
If xRg Is Nothing Then
Set xRg = ActiveSheet.UsedRange
End If
Me.ListBox1.Visible = False
xDic.RemoveAll
With Me.ListBox1
For I = 1 To xRg.Count
xStr = xRg(I).Value
If xStr <> "" Then
.AddItem xStr
If Not xDic.Exists(xStr) Then
xDic.Add xStr, xStr
End If
End If
Next
End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
With Me.ListBox1
.Top = Me.TextBox1.Top
.Left = Me.TextBox1.Left + Me.TextBox1.Width
.Width = Me.TextBox1.Width
End With
TextBoxVal Me.TextBox1.Object
End Sub
Sub TextBoxVal(xTextBox As Variant)
Dim I As Long
Dim xStr As String
On Error Resume Next
Application.ScreenUpdating = False
If xRg Is Nothing Then Exit Sub
Me.ListBox1.Clear
xStr = xTextBox.Value
If xStr = "" Then
Me.ListBox1.Visible = False
Application.EnableEvents = True
Exit Sub
End If
For I = 0 To UBound(xDic.Items)
If Left(xDic.Items(I), Len(xStr)) = xStr Then
Me.ListBox1.AddItem xDic.Items(I)
End If
Next
Me.ListBox1.Visible = True
If Me.ListBox1.ListCount > 0 Then
With xTextBox
.Value = Me.ListBox1.List(0)
.SelStart = Len(xStr)
.SelLength = Len(Me.ListBox1.List(0))
End With
End If
Me.ListBox1.Activate
Me.ListBox1.Selected(0) = True
Application.ScreenUpdating = True
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Me.TextBox1.Value = Me.ListBox1.Value
End If
End Sub
주의 사항: 코드에서 ListBox1 및 텍스트 상자 1 워크 시트에 삽입 한 목록 상자 및 텍스트 상자의 이름입니다.
5. 누르세요 다른 + Q 나가는 열쇠 응용 프로그램 용 Microsoft Visual Basic 창.
6. 클릭하여 디자인 모드를 끕니다. 개발자 > 디자인 모드 워크 시트에서.
7. 이제 다른 워크 시트로 이동 한 다음 이전 워크 시트로 돌아가서 VBA 코드를 활성화합니다.
지금부터. 텍스트 상자에 첫 글자를 입력 할 때 워크 시트에 입력 한 해당 글자로 시작하는 모든 텍스트는 텍스트 상자의 오른쪽에있는 목록 상자 안에 나열됩니다. 필요한 것을 두 번 클릭하여 텍스트 상자에 입력하십시오. 스크린 샷보기 :
주의 사항: Up or 아래로 화살표 키를 눌러 목록 상자의 모든 자동 완성 텍스트 사이를 이동 한 다음 엔터 버튼 텍스트 상자에 필요한 키를 입력합니다.
관련 기사 :
- Excel에서 선택한 텍스트 상자의 텍스트를 자동으로 선택하는 방법은 무엇입니까?
- Excel에서 클릭하면 텍스트 상자의 내용을 지우는 방법은 무엇입니까?
- 여러 셀의 텍스트를 Excel의 텍스트 상자에 연결하는 방법은 무엇입니까?
- Excel에서 사용자 입력을 방지하기 위해 텍스트 상자에서 편집을 비활성화하는 방법은 무엇입니까?
- Excel에서 텍스트 상자를 백분율로 서식을 지정하는 방법은 무엇입니까?
최고의 사무 생산성 도구
Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.
- 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
- 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
- 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
- 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
- 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
- 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
- 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
- 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
- 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.
- Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
- 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
- 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
