VBA החלף מחרוזת | כיצד להחליף טקסט במחרוזת באמצעות VBA?

Excel VBA החלף מחרוזת

החלפה היא גם פונקציית גליון העבודה וגם פונקציית VBA. פונקציה זו עוזרת לנו להחליף את המילה המסוימת מהמחרוזת במחרוזת אחרת. זה עובד בדומה לפונקציה תחליף ב- VBA.

בעת התמודדות עם ערכי נתוני מחרוזת או נתוני טקסט זה דבר מובן מאליו להחליף או להחליף משהו במשהו אחר, להצטרף לשני נתוני תאים לאחד או לפצל נתוני תא אחד למספר דברים. כל אלה משימות נפוצות שאנו עושים יום יום במקום העבודה שלנו.

אז איך מחליפים מילה אחת במחרוזת במילה אחרת? לדוגמא, אם המחרוזת היא "הודו היא מדינה מתפתחת והודו במדינה האסיאתית", ממחרוזת זו עלינו להחליף את המילה "הודו" ולהשתנה ל"בהרט ".

זה אפשרי באמצעות הפונקציה Replace. במאמר זה נראה לכם כיצד להחליף מחרוזות בקידוד VBA.

החלף פונקציה

  • ביטוי: אין זה אלא ערך המחרוזת המקורי ממנו אנו מנסים להחליף משהו במשהו. לדוגמא להלן מחרוזת הביטוי - "הודו היא מדינה מתפתחת והודו במדינה האסיאתית"
  • מצא מחרוזת: מה המחרוזת שאנו מנסים להחליף. למשל במחרוזת הביטוי אנו מנסים להחליף את המילה "הודו".
  • החלף מחרוזת: מהו מחרוזת התחליף בה אנו מחליפים את מחרוזת החיפוש ? לכן, במקרה זה, אנו מנסים להחליף את המילה "הודו" ב"בהרט ".
  • [התחל]: זהו פרמטר אופציונלי. במחרוזת שלעיל (ביטוי) יש לנו שתי מילים "הודו" ולכן מאיזה מיקום של מחרוזת מצא עלינו להתחיל את תהליך ההחלפה. לדוגמא, אם נגיד 2 זה יתחיל להחליף את המילה "הודו" מהעמדה השנייה ואילך.
  • [ספירה]: אם מחרוזת החיפוש מופיעה מספר פעמים בביטוי אז כמה מילים עלינו להחליף.

לדוגמא, אם המילה "הודו" מופיעה 5 פעמים ואם תספק את הספירה כ -3 אז היא תחליף רק את שלוש המילים "הודו" הראשונות.

כיצד להחליף טקסט במחרוזת באמצעות VBA?

אתה יכול להוריד תבנית VBA להחליף מחרוזת זו כאן - VBA להחליף מחרוזת תבנית Excel

דוגמה מס '1

כעת ננסה להחליף את המילה "הודו" ב"בהרט "מערך המחרוזת להלן.

"הודו היא מדינה מתפתחת והודו במדינה האסיאתית"

ראשית, התחל את הליך המאקרו של Excel כעת.

קוד:

 Sub Replace_Example () Sub Sub 

הגדר את המשתנה VBA כמחרוזת.

קוד:

 Sub Replace_Example () עמעום NewString כמו Sub String End 

במשתנה זה, אנו נציג ערך מחרוזת חדש לאחר החלפת המילה "הודו" ב"בהרת ". עבור משתנה זה פתח את פונקציית החלף.

הטיעון הראשון של פונקציה זו הוא "ביטוי" כלומר מאיזה מחרוזת אנו מנסים להחליף מילה, לכן העתק והדבק את המחרוזת "הודו היא מדינה מתפתחת והודו במדינה האסיאתית".

הטיעון הבא הוא "מצא מחרוזת" כלומר איזו מילה עלינו להחליף כלומר "הודו".

הטיעון הבא הוא "החלף מחרוזת" כלומר באיזה מחרוזת אנו צריכים להחליף את המילה "הודו" כלומר "בהרת".

בסדר, נכון לעכשיו התעלם מהוויכוחים שנותרו. כעת הציגו את התוצאה בתיבת ההודעות.

קוד:

 Sub Replace_Example () עמעום NewString כמחרוזת NewString = החלף ("הודו היא מדינה מתפתחת והודו היא המדינה האסיאתית", "הודו", "Bharath") MsgBox NewString סוף משנה 

בואו נפעיל את הקוד באמצעות מקש F5 או ידנית ונראה את תוצאת המחרוזת החדשה.

אוקי, תסתכל על התוצאה שלעיל בכל מקום שהיה לנו את המילה "הודו" היא הוחלפה במילה "Bharath".

דוגמה מס '2

כעת נראה כיצד להשתמש באותו קוד עם משתנים. עיין בקוד שלמטה.

קוד:

 Sub Replace_Example1 () Dim NewString As String Dim MyString as String Dim FindString As String Dim ReplaceString As String MyString = "הודו היא מדינה מתפתחת והודו היא המדינה האסיאתית" FindString = "India" ReplaceString = "Bharath" NewString = החלף (MyString , FindString, ReplaceString) MsgBox NewString סוף משנה 

בקוד הנ"ל הצהרתי על שלושה משתנים נוספים.

 עמעום MyString כמו מחרוזת Dim DimString כמו מחרוזת Dim החלף מחרוזת כמחרוזת 

למשתנים אלה הקצתי ערכים, במקום לספק את מחרוזת הביטוי, מצא מחרוזת והחלף מחרוזת אנו נספק רק משתנה לפונקציה החלף.

קוד זה גם נותן את אותה תוצאה אך ההבדל היחיד הוא שהשתמשנו במשתנים במקום אספקה ​​ישירה של ערכים לפונקציה.

דוגמה מס '3

Assume you want to replace the word “India” only from the second position then we need to use the Replace function parameter [“Start”]. Look at the below code for your information.

Code:

 Sub Replace_Example2() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Start:=34) MsgBox NewString End Sub 

Only one extra thing we have added from the previous code is the “Start” parameter as 34. Now run the code and see the result.

Now we can see only string after the 34th character of the string with “India” replacing with “Bharath”.

Example #4

Now for an example, if we want to replace only the first occurrence of the word “India” to “Bharath” then we need to use [“Count”] parameter of the Replace function.

Below is the code for you.

Code:

 Sub Replace_Example3() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Count:=1) MsgBox NewString End Sub 

Run the code manually or through the F5 key and see the result.

As you can see above it has replaced only the first occurrence of the word “India” to “Bharath” and the second instance remains the same.

Things to Remember Here

  • Replace is a string function family in VBA.
  • In VBA, the replace function replaces all the supplied words with replaced string if the count parameter is not specified.
  • The start parameter will delete the number of characters supplied and show the remaining result.