כיצד להשלים אוטומטית תיבת טקסט בעת הקלדה ב-Excel?
כברירת מחדל, Excel יכול לזכור מה הזנת בתאים של גליון העבודה הנוכחי ולהשלים אוטומטית תוכן זה בפעם הבאה שתתחיל להקליד אות ראשונה קשורה לתא חדש. עם זאת, אם ברצונך שכל התוכן שהזנת בגליון העבודה יופיע באופן אוטומטי בתיבת טקסט (ActiveX Control), כיצד תוכל לעשות זאת? מאמר זה יציע שיטה של VBA כדי לעזור לך להשלים אוטומטית את תיבת הטקסט בעת הקלדת אות ראשונה בתוכה.
השלמת אוטומטית של תיבת טקסט בעת הקלדה עם קוד VBA
השלמת אוטומטית של תיבת טקסט בעת הקלדה עם קוד VBA
אנא עשה את הפעולות הבאות כדי לאפשר השלמה אוטומטית של תיבת טקסט בעת הקלדת אות ראשונה בתיבה.
1. אנא הכנס תיבת טקסט על ידי לחיצה על מפתח > הוסף > תיבת טקסט (ActiveX Control). ראה צילום מסך:
2. ולאחר מכן לחץ על מפתח > הוסף > תיבת רשימה (ActiveX Control) כדי להוסיף תיבת רשימה לגיליון העבודה הנוכחי. ראה צילום מסך:
3. לחץ לחיצה ימנית על לשונית הגיליון, ואז לחץ על קוד תצוגה מהתפריט הקונטקסטואלי כפי שמוצג בתמונה למטה.
4. בחלון Microsoft 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 כדי לצאת מחלון Microsoft Visual Basic for Applications.
6. כבה את מצב העיצוב על ידי לחיצה על מפתח > מצב עיצוב בגיליון העבודה.
7. כעת עבר לגיליון עבודה אחר וחזור לגיליון הקודם כדי להפעיל את קוד ה-VBA.
מעכשיו. כאשר מכניסים אות ראשונה לתוך תיבת הטקסט, כל הטקסטים שמתחילים באות הזו שהזנת לגיליון העבודה יוצגו בתוך תיבת הרשימה שנמצאת בצד ימין של תיבת הטקסט. אנא לחץ פעמיים על האפשרות הנדרשת כדי להכניס אותה לתוך תיבת הטקסט. ראה צילום מסך:
הערה: באפשרותך להשתמש במקשי החץ למעלה או למטה כדי לנווט בין כל הטקסטים המושלמים אוטומטית בתיבת הרשימה, ולאחר מכן ללחוץ על מקש Enter כדי להכניס את זה הנדרש לתוך תיבת הטקסט.
מאמרים קשורים:
- כיצד לבחור אוטומטית את הטקסט של תיבת טקסט כאשר הוא נבחר ב-Excel?
- כיצד לנקות את תוכן תיבת הטקסט כאשר הוא נלחץ ב-Excel?
- כיצד לחבר טקסטים מרובים תאים לתוך תיבת טקסט ב-Excel?
- כיצד להשבית עריכה בתיבת טקסט כדי למנוע קלט משתמש ב-Excel?
- כיצד לעצב תיבת טקסט כאחוזים ב-Excel?
כלי הפרודוקטיביות הטובים ביותר ל-Office
שדרג את כישורי ה-Excel שלך עם Kutools for Excel ותחווה יעילות שלא הכרת. Kutools for Excel מציע מעל300 פיצ'רים מתקדמים לשיפור הפרודוקטיביות ולחסוך זמן. לחץ כאן כדי לקבל את הפיצ'ר שהכי נחוץ לך...
Office Tab מביא ממשק טאב ל-Office והופך את העבודה שלך להרבה יותר קלה
- אפשר עריכה וקריאה בטאבים ב-Word, Excel, PowerPoint
- פתח וצור מסמכים מרובים בטאבים חדשים באותו חלון, במקום בחלונות חדשים.
- הגדל את הפרודוקטיביות שלך ב-50% וצמצם מאות קליקים של עכבר בכל יום!