كيف يمكن تمكين الإكمال التلقائي لمربع النص أثناء الكتابة في Excel؟
بشكل افتراضي، يتذكّر برنامج 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 
ملاحظة: في الكود،ListBox1 وTextbox1 هما اسما مربَّع القائمة ومربَّع النص اللذين أدرجتهما في ورقة العمل الخاصة بك.
5. اضغط على مفاتيحAlt+Q للخروج من نافذةمايكروسوفت Visual Basic for Applications.
6. أوقف وضع التصميم بالنقر علىالمطور > وضع التصميمفي ورقة العمل.
7. انتقل الآن إلى ورقة عمل أخرى، ثم عُد إلى الورقة السابقة لتفعيل كود VBA.
من الآن فصاعدًا، عند إدخال حرفٍ أولي في مربع النص، سيعرض لك مربع القائمة الموجود على الجانب الأيمن جميع النصوص التي سبق أن أدخلتها في ورقة العمل وتبدأ بهذا الحرف. ما عليك سوى النقر مرتين على العنصر الذي تريده لإدخاله تلقائيًا في مربع النص. انظر لقطة الشاشة:

ملاحظة: يمكنك استخدام مفتاحالأعلىأوالأسفلللتنقّل بين جميع اقتراحات الإكمال التلقائي في مربع القائمة، ثم اضغط مفتاحEnter لإدخال العنصر المطلوب في مربع النص.
مقالات ذات صلة:
- كيف يمكن جعل Excel يحدد تلقائيًا محتوى مربع النص بالكامل عند النقر لتحديده؟
- كيف يمكن مسح محتويات مربع النص تلقائيًا عند النقر عليه في Excel؟
- كيف تدمج محتويات خلايا متعددة في مربع نص واحد في Excel؟
- كيف يمكن تعطيل التحرير في مربع النص لمنع المستخدم من إدخال أي بيانات في Excel؟
- كيف يمكن تنسيق مربع النص كنسبة مئوية في Excel؟
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في 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.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل