Ana içeriğe atla

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:

En İyi Ofis Üretkenlik Araçları

🤖 Kutools AI Yardımcısı: Aşağıdakilere dayalı olarak veri analizinde devrim yaratın: Akıllı Yürütme   |  Kodunu oluşturun  |  Özel Formüller Oluşturun  |  Verileri Analiz Edin ve Grafikler Oluşturun  |  Kutools İşlevlerini Çağır...
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya Tanımla   |  Boş Satırları Sil   |  Veri Kaybı Olmadan Sütunları veya Hücreleri Birleştirin   |   Formülsüz Tur ...
Süper Arama: Çoklu Ölçütlü VLookup    Çoklu Değer VLookup  |   Birden Çok Sayfada VLookup   |   Bulanık Arama ....
Gelişmiş Açılır Liste: Hızla Açılır Liste Oluşturun   |  Bağımlı Açılır Liste   |  Çoklu Seçim Açılır Liste ....
Sütun Yöneticisi: Belirli Sayıda Sütun Ekleme  |  Sütunları Taşı  |  Gizli Sütunların Görünürlük Durumunu Değiştir  |  Aralıkları ve Sütunları Karşılaştırın ...
Öne Çıkan Özellikler: Izgara Odağı   |  Tasarım görünümü   |   Büyük Formül Çubuğu    Çalışma Kitabı ve Sayfa Yöneticisi   |  Kaynak Kütüphanesi (Otomatik metin)   |  Tarih Seçici   |  Çalışma Sayfalarını Birleştirin   |  Hücreleri Şifrele/Şifresini Çöz    E-postaları Listeye Göre Gönder   |  Süper Filtre   |   Özel Filtre (kalın/italik/üstü çizili filtre...) ...
En İyi 15 Araç Seti12 Metin Tools (Metin ekle, Karakterleri Kaldır, ...)   |   50+ Grafik Türleri (Gantt şeması, ...)   |   40+ Pratik Formüller (Yaşı doğum gününe göre hesapla, ...)   |   19 sokma Tools (QR Kodunu Girin, Yoldan Resim Ekle, ...)   |   12 Dönüştürme Tools (Sayılardan Kelimelere, Para Birimi Dönüştürme, ...)   |   7 Birleştir ve Böl Tools (Gelişmiş Kombine Satırları, Bölünmüş hücreler, ...)   |   ... ve dahası

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...

Açıklama


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!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Why would anyone go for writing a script when there are simpler ways to get a dropdown list???
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations