Excel'de yazarken bir metin kutusu nasıl otomatik tamamlanır?
Varsayılan olarak Excel, geçerli çalışma sayfasının hücrelerine girdiklerinizi hatırlayabilir ve bir dahaki sefere yeni bir hücreye ilgili bir ilk harf yazarken bu içeriği otomatik tamamlayabilir. Bununla birlikte, çalışma sayfasına girdiğiniz tüm içeriğin bir metin kutusunda (ActiveX Kontrolü) otomatik olarak tamamlanmasını istiyorsanız, nasıl yapabilirsiniz? Bu makale, içine bir ilk harf yazarken bir metin kutusunu otomatik olarak tamamlamanıza yardımcı olacak bir VBA yöntemi sağlayacaktır.
VBA kodu ile yazarken bir metin kutusunu otomatik tamamlayın
VBA kodu ile yazarken bir metin kutusunu otomatik tamamlayın
Metin kutusunun içine bir ilk harf yazarken bir metin kutusunu otomatik tamamlama yapmak için lütfen aşağıdaki işlemleri yapın.
1. Lütfen tıklayarak bir metin kutusu ekleyin Geliştirici > Ekle > Metin Kutusu (ActiveX Kontrolü). Ekran görüntüsüne bakın:
2. Ve sonra tıklayın Geliştirici > Ekle > Liste Kutusu (ActiveX Kontrolü) mevcut çalışma sayfasına bir liste kutusu eklemek için. Ekran görüntüsüne bakın:
3. Sayfa sekmesine sağ tıklayın, ardından Kodu Görüntüle aşağıdaki ekran görüntüsü gibi bağlam menüsünden.
4. içinde Uygulamalar için Microsoft Visual Basic penceresi, lütfen VBA kodunu kopyalayıp Kod penceresine yapıştırın. Ve sonra tıklayın Tools > Referanslarve daha sonra Microsoft Komut Dosyası Çalışma Zamanı kutusu Referanslar - VBAProject iletişim kutusu. Ekran görüntüsüne bakın:
VBA kodu: Yazarken bir metin kutusunu otomatik tamamlayın
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
not: Kodda, Liste Kutusu1 ve Metin Kutusu1 çalışma sayfanıza eklediğiniz liste kutusu ve metin kutusunun adıdır.
5. Tuşuna basın. Ara Toplam + Q çıkış tuşları Uygulamalar için Microsoft Visual Basic pencere.
6. Tıklayarak Tasarım Modunu kapatın. Geliştirici > Tasarım Modu çalışma sayfasında.
7. Şimdi başka bir çalışma sayfasına geçin ve ardından VBA kodunu etkinleştirmek için önceki çalışma sayfasına geri dönün.
Şu andan itibaren. Metin kutusuna bir ilk harf girerken, çalışma sayfasına girdiğiniz o harfle başlayan tüm metinler, metin kutusunun sağ tarafında bulunan liste kutusunda listelenecektir. Lütfen metin kutusuna girmek için ihtiyacınız olanı çift tıklayın. Ekran görüntüsüne bakın:
not: Up or Aşağı Liste kutusundaki tüm otomatik tamamlama metinleri arasında hareket etmek için ok tuşunu kullanın ve ardından Keşfet Metin kutusuna gerekli olanı girmek için tuşuna basın.
İlgili yazılar:
- Excel'de seçildiğinde bir metin kutusunun metnini otomatik olarak nasıl seçebilirim?
- Excel'de tıklandığında metin kutusunun içeriği nasıl temizlenir?
- Birden çok hücrenin metinlerini Excel'deki bir metin kutusuna nasıl birleştirebilirim?
- Kullanıcıların Excel'de giriş yapmasını önlemek için metin kutusunda düzenlemeyi nasıl devre dışı bırakabilirim?
- Excel'de bir metin kutusu yüzde olarak nasıl biçimlendirilir?
En İyi Ofis Üretkenlik Araçları
Kutools for Excel ile Excel Becerilerinizi Güçlendirin ve Daha Önce Hiç Olmadığı Gibi Verimliliği Deneyimleyin. Kutools for Excel, Üretkenliği Artırmak ve Zamandan Tasarruf Etmek için 300'den Fazla Gelişmiş Özellik Sunar. En Çok İhtiyacınız Olan Özelliği Almak İçin Buraya Tıklayın...
Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir
- Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
- Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
- Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!