Excel에서 입력 할 때 텍스트 상자를 자동 완성하는 방법은 무엇입니까?
기본적으로 Excel은 현재 워크 시트의 셀에 입력 한 내용을 기억하고 다음에 관련 첫 글자를 새 셀에 입력 할 때이 내용을 자동 완성 할 수 있습니다. 그러나 워크 시트에 입력 한 모든 내용이 텍스트 상자 (ActiveX Control)에 자동 완성되도록하려면 어떻게해야합니까? 이 기사에서는 내부에 첫 글자를 입력 할 때 텍스트 상자를 자동 완성하는 데 도움이되는 VBA 방법을 제공합니다.
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 and 텍스트 상자 1 워크 시트에 삽입 한 목록 상자 및 텍스트 상자의 이름입니다.
5. 누르세요 다른 + Q 나가는 열쇠 응용 프로그램 용 Microsoft Visual Basic 창.
6. 클릭하여 디자인 모드를 끕니다. 개발자 > 디자인 모드 워크 시트에서.
7. 이제 다른 워크 시트로 이동 한 다음 이전 워크 시트로 돌아가서 VBA 코드를 활성화합니다.
지금부터. 텍스트 상자에 첫 글자를 입력 할 때 워크 시트에 입력 한 해당 글자로 시작하는 모든 텍스트는 텍스트 상자의 오른쪽에있는 목록 상자 안에 나열됩니다. 필요한 것을 두 번 클릭하여 텍스트 상자에 입력하십시오. 스크린 샷보기 :
주의 사항: Up or 아래로 화살표 키를 눌러 목록 상자의 모든 자동 완성 텍스트 사이를 이동 한 다음 엔터 버튼 텍스트 상자에 필요한 키를 입력합니다.
관련 기사 :
- Excel에서 선택한 텍스트 상자의 텍스트를 자동으로 선택하는 방법은 무엇입니까?
- Excel에서 클릭하면 텍스트 상자의 내용을 지우는 방법은 무엇입니까?
- 여러 셀의 텍스트를 Excel의 텍스트 상자에 연결하는 방법은 무엇입니까?
- Excel에서 사용자 입력을 방지하기 위해 텍스트 상자에서 편집을 비활성화하는 방법은 무엇입니까?
- Excel에서 텍스트 상자를 백분율로 서식을 지정하는 방법은 무엇입니까?
최고의 사무 생산성 도구
🤖 | Kutools AI 보좌관: 다음을 기반으로 데이터 분석을 혁신합니다. 지능형 실행 | 코드 생성 | 사용자 정의 수식 만들기 | 데이터 분석 및 차트 생성 | Kutools 기능 호출... |
인기 기능: 중복 항목 찾기, 강조 표시 또는 식별 | 빈 행 삭제 | 데이터 손실 없이 열이나 셀 결합 | 수식없이 반올림 ... | |
슈퍼 조회: 다중 기준 VLookup | 다중 값 VLookup | 여러 시트에 걸친 VLookup | 퍼지 조회 .... | |
고급 드롭다운 목록: 드롭다운 목록을 빠르게 생성 | 종속 드롭다운 목록 | 다중 선택 드롭 다운 목록 .... | |
열 관리자: 특정 개수의 열 추가 | 열 이동 | Toggle 숨겨진 열의 가시성 상태 | 범위 및 열 비교 ... | |
특색 지어진 특징: 그리드 포커스 | 디자인보기 | 큰 수식 바 | 통합 문서 및 시트 관리자 | 자료실 (자동 텍스트) | 날짜 선택기 | 워크 시트 결합 | 셀 암호화/해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵게/기울임꼴/취소선 필터링...) ... | |
상위 15개 도구 세트: 12 본문 도구 (텍스트 추가, 문자 제거,...) | 50+ 거래차트 유형 (Gantt 차트,...) | 40+ 실용 방식 (생일을 기준으로 나이 계산,...) | 19 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입,...) | 12 매출 상승 도구 (숫자를 단어로, 환율,...) | 7 병합 및 분할 도구 (고급 결합 행, 셀 분할,...) | ... 그리고 더 |
Excel용 Kutools로 Excel 기술을 강화하고 이전과는 전혀 다른 효율성을 경험해 보세요. Excel용 Kutools는 생산성을 높이고 시간을 절약하기 위해 300개 이상의 고급 기능을 제공합니다. 가장 필요한 기능을 얻으려면 여기를 클릭하십시오...
Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.
- Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
- 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
- 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!