KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

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

المؤلفSiluviaتاريخ التعديل

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

تمكين الإكمال التلقائي لمربع النص أثناء الكتابة باستخدام كود VBA


تمكين الإكمال التلقائي لمربع النص أثناء الكتابة باستخدام كود VBA

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

1. يُرجى إدراج مربع نص بالنقر علىالمطور > إدراج > مربع نص (عنصر تحكم ActiveX). انظر لقطة الشاشة:

انقر لإدراج مربع نص

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

انقر لإدراج مربع قائمة

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

انتقل إلى 'عرض الكود' من قائمة النقر بزر الماوس الأيمن

4. في نافذةمايكروسوفت Visual Basic for Applications، يُرجى نسخ ولصق كود VBA التالي في نافذة الكود. بعد ذلك، انقر علىأدوات > المراجع، ثم حدد خانة الاختيارMicrosoft Scripting Runtime في مربع الحوارالمراجع – 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

انتقل إلى مربع حوار المراجع وحدد خيار Microsoft Scripting Runtime

ملاحظة: في الكود،ListBox1 وTextbox1 هما اسما مربَّع القائمة ومربَّع النص اللذين أدرجتهما في ورقة العمل الخاصة بك.

5. اضغط على مفاتيحAlt+Q للخروج من نافذةمايكروسوفت Visual Basic for Applications.

6. أوقف وضع التصميم بالنقر علىالمطور > وضع التصميمفي ورقة العمل.

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

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

عند إدخال حرف أولي في مربع النص، سيتم عرض جميع النصوص التي تبدأ بهذا الحرف

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



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

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

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

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


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

  • تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
  • افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
  • يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!

جميع الإضافات من Kutools في برنامج تثبيت واحد!

Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.

ExcelWordOutlookTabsPowerPoint
  • حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
  • برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
  • يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
  • تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل