특정 열에있는 텍스트를 기반으로 텍스트를 자동 완성하는 Excel 시트를 만듭니다. 자신을 성공적으로 만들지 않으려 고 시도한 후에 온라인 프로그램을 수정하고 프로그램에 통합 할 수있는 샘플 코드를 찾고있었습니다. 내가 http://www.ozgrid.com/forum/showthread.php?t=144438VBA의 자동 완성 텍스트 상자
코드에서 Workbook1.xls 다운로드
(그리고 표절하지 않음)이 라인 RestOfCompletion = 중간 (oRange.Cells (1주의하세요
Option Explicit
Dim ufEventsDisabled As Boolean
Dim autoCompleteEnabled As Boolean
Dim oRange As Range
Private Sub TextBox1_Change()
If ufEventsDisabled Then Exit Sub
If autoCompleteEnabled Then Call myAutoComplete(TextBox1)
End Sub
Sub myAutoComplete(aTextBox As MSForms.TextBox)
Dim RestOfCompletion As String
On Error GoTo Halt
With aTextBox
If .SelStart + .SelLength = Len(.Text) Then
RestOfCompletion = Mid(oRange.Cells(1, 1).AutoComplete(.Text), Len(.Text) + 1)
ufEventsDisabled = True
.Text = .Text & RestOfCompletion
.SelStart = Len(.Text) - Len(RestOfCompletion)
.SelLength = Len(RestOfCompletion)
End If
End With
Halt:
ufEventsDisabled = False
On Error GoTo 0
End Sub
Private Sub TextBox1_AfterUpdate()
Dim strCompleted As String
With TextBox1
strCompleted = oRange.AutoComplete(.Text)
If LCase(strCompleted) = LCase(.Text) Then
ufEventsDisabled = True
.Text = strCompleted
ufEventsDisabled = False
End If
End With
End Sub
Private Sub TextBox1_Enter()
Set oRange = ThisWorkbook.Sheets("Sheet1").Range("f4")
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
autoCompleteEnabled = KeyCode <> vbKeyBack
autoCompleteEnabled = ((vbKey0 <= KeyCode) And (KeyCode <= vbKeyZ))
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Click()
End Sub
이다 1). AutoComplete (. 텍스트), Len (. 텍스트) +1), 나는 AutoComplete가 여기서 무엇을하고 있는지 궁금해하고 있었다. 내장 기능이 아니며 어디에도 정의되어 있지 않습니다. 여전히 코드는 정상적으로 실행됩니다. 나는 매우 호기심이 많다.
감사
고마워 .. 그 말이 맞는 ... 나는 새로운 VBA 프로그래머이며 다른 코드에서 배우려고하고있다. – Ank