انتقل إلى المحتوى الرئيسي

كيفية الإكمال التلقائي لمربع نص عند الكتابة في Excel؟

بشكل افتراضي ، يمكن لبرنامج Excel تذكر ما قمت بإدخاله في خلايا ورقة العمل الحالية وإكمال هذا المحتوى تلقائيًا في المرة القادمة عند كتابة حرف أولي ذي صلة في خلية جديدة. ومع ذلك ، إذا كنت ترغب في جعل جميع المحتويات التي أدخلتها في ورقة العمل يتم إكمالها تلقائيًا في مربع نص (عنصر تحكم ActiveX) ، فكيف يمكنك القيام بذلك؟ ستوفر هذه المقالة طريقة VBA لمساعدتك في الإكمال التلقائي لمربع نص عند كتابة حرف أولي بالداخل.

إكمال مربع نص تلقائيًا عند الكتابة باستخدام رمز VBA


إكمال مربع نص تلقائيًا عند الكتابة باستخدام رمز VBA

يرجى القيام بما يلي لإجراء إكمال تلقائي لمربع نص عند كتابة حرف أولي داخل مربع النص.

1. الرجاء إدخال مربع نص بالضغط المطور > إدراج > مربع نص (عنصر تحكم ActiveX). انظر لقطة الشاشة:

2. ثم انقر فوق المطور > إدراج > مربع القائمة (عنصر تحكم ActiveX) لإدراج مربع قائمة في ورقة العمل الحالية. انظر لقطة الشاشة:

3. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة ، ثم انقر فوق عرض الرمز من قائمة السياق كما هو موضح أدناه.

4. في ال ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، يرجى نسخ ولصق رمز VBA أدناه في نافذة التعليمات البرمجية. ثم انقر فوق الأدوات > مراجع حسابات، ثم تحقق من وقت تشغيل البرمجة لـ Microsoft في مربع المراجع - VBAProject صندوق المحادثة. انظر لقطة الشاشة:

كود فبا: الإكمال التلقائي لمربع نص عند الكتابة

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 مفاتيح للخروج من ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

6. قم بإيقاف تشغيل "وضع التصميم" بالنقر فوق المطور > وضع التصميم في ورقة العمل.

7. انتقل الآن إلى ورقة عمل أخرى ثم عد إلى ورقة العمل السابقة لتمكين رمز VBA.

من الان فصاعدا. عند إدخال حرف أولي في مربع النص ، سيتم سرد جميع النصوص التي تبدأ بهذا الحرف الذي أدخلته في ورقة العمل داخل مربع القائمة الموجود على الجانب الأيمن من مربع النص. يرجى النقر نقرًا مزدوجًا فوق الشخص المطلوب لإدخاله في مربع النص. انظر لقطة الشاشة:

ملاحظات: يمكنك استخدام ال Up or إلى أسفل مفتاح السهم للتنقل بين جميع نصوص الإكمال التلقائي في مربع القائمة ، ثم اضغط على أدخل مفتاح لإدخال المطلوب في مربع النص.


مقالات ذات صلة:

أفضل أدوات إنتاجية المكتب

🤖 مساعد Kutools AI: إحداث ثورة في تحليل البيانات على أساس: التنفيذ الذكي   |  إنشاء التعليمات البرمجية  |  إنشاء صيغ مخصصة  |  تحليل البيانات وإنشاء الرسوم البيانية  |  استدعاء وظائف Kutools...
الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

الوصف


يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
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