كيفية الإكمال التلقائي لمربع نص عند الكتابة في 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 إلى أسفل مفتاح السهم للتنقل بين جميع نصوص الإكمال التلقائي في مربع القائمة ، ثم اضغط على أدخل مفتاح لإدخال المطلوب في مربع النص.
مقالات ذات صلة:
- كيفية تحديد نص مربع نص تلقائيًا عند تحديده في Excel؟
- كيفية مسح محتويات مربع النص عند النقر فوقه في Excel؟
- كيف تسلسل نصوص خلايا متعددة في مربع نص في إكسيل؟
- كيفية تعطيل التحرير في مربع النص لمنع إدخال المستخدم في Excel؟
- كيفية تنسيق مربع نص كنسبة مئوية في Excel؟
أفضل أدوات إنتاجية المكتب
عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير
- تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
- فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
- يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!