VBA InStrRev | כיצד להשתמש בפונקציית Excel VBA InStrRev?

Excel VBA INSTRREV

פונקציית VBA INSTRREV , כפי שהיא מייצגת 'הפוך במחרוזת ' , מחזירה את המיקום של המופע הראשון של מחרוזת חיפוש (מחרוזת) במחרוזת אחרת, החל מסוף המחרוזת (מימין לשמאל) שממנו אנו מחפשים מחרוזת הניתנת לחיפוש.

פונקציית INSTRREV מתחילה לחפש את המחרוזת הניתנת לחיפוש מסוף המחרוזת בה אנו צריכים לברר אך סופרת את המיקום מההתחלה. יש פונקציית INSTR vba אחת נוספת (מייצגת 'In String' ) המחפשת גם מחרוזת במחרוזת אחרת ומחזירה את המיקום אך פונקציה זו מתחילה את החיפוש מתחילת המחרוזת ממנה אנו מחפשים מחרוזת הניתנת לחיפוש.

INSTRREV ו- INSTR , שניהם פונקציית VBA מחרוזת / טקסט מובנית של MS Excel. אנו יכולים להשתמש בהם בעת כתיבת כל מאקרו בעורך Visual Visual של מיקרוסופט.

תחביר

כפי שניתן לראות בתמונה לעיל, ישנם שני טיעונים חובה ו -2 טיעונים אופציונליים.

  • StringCheck כמחרוזת: זהו הטיעון הנדרש. עלינו לתת ביטוי מחרוזת הנמצא בחיפוש.
  • StringMatch As String: נדרש גם טיעון זה. עלינו לציין ביטוי מחרוזת אותו מחפשים.
  • התחל כל עוד = -1: זהו טיעון אופציונלי. אנו מציינים את הביטוי המספרי. כברירת מחדל, זה לוקח -1 מה שאומר שהחיפוש מתחיל במיקום התו האחרון. אם אנו מציינים ערך חיובי כלשהו כמו 80 אז הוא מתחיל לחפש מקצה המחרוזת באותם 80 תווים משמאל.
  • השווה כ- VbCompareMethod = vbBinaryCompare As Long: ארגומנט זה הוא אופציונלי.

אנו יכולים לציין את הערכים הבאים עבור טיעון זה.

החזר ערכים

  1. הפונקציה INSTRREV מחזירה 0 אם סימון המחרוזת  הוא באורך אפס או התאמת מחרוזת  לא נמצא או ארגומנט 'התחל' > אורך התאמת המחרוזת .
  2. פונקציה זו מחזירה את 'אפס' אם בדיקת מחרוזת  או התאמת מחרוזת  הם 'אפס' .
  3. אם התאמת המחרוזת היא באורך אפס, אז הפונקציה חוזרת להתחיל .
  4. אם נמצא התאמת מחרוזת בתוך בדיקת מחרוזת , אז הפונקציה מחזירה את המיקום בו נמצאת ההתאמה.

כיצד להשתמש בפונקציה VBA INSTRREV?

אתה יכול להוריד תבנית Excel VBA INSTRREV כאן - תבנית VBA INSTRREV Excel

נניח שיש לנו נתונים לגבי שמות סרטים ובמאים שלהם. אנו רוצים לפצל שמות במאים.

יש לנו נתונים ב- 1201 שורות. אם נעשה את המשימה באופן ידני, זה ייקח הרבה זמן.

לשם כך נשתמש בקוד VBA. השלבים הם:

  • אנחנו צריכים ללחוץ על "Visual Basic" פיקוד זמין "קוד" קבוצה ב "מפתחים" Tab או שאנחנו יכולים ללחוץ Alt + F11 כדי לפתוח את עורך Visual Basic.

  • נכניס מודול באמצעות תפריט 'הוספה' .

  • ניצור תת-מנהג בשם 'SplittingNames' .

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

  • כדי לברר את השורה האחרונה בשימוש בגיליון, עלינו להשתמש בקוד הבא.

קוד זה יבחר תחילה את התא B1 ולאחר מכן בחר את התא האחרון ששימש באותה עמודה ואז נקצה את מספר השורה של התא למשתנה 'LastRow'.

  • עכשיו כדי לתפעל את כל התאים בעמודה B, נפעיל לולאה 'עבור' .

  • אנו נאחסן את ערך התאים של עמודת B משורה 2 לשורה 1201 בזה אחר זה במשתנה 's' כדי לתפעל אותם.

  • עלינו להגדיר את הערך של המשתנה 'עמודה' ל- 3 שכן עלינו לכתוב את השמות המפוצלים ב- C (עמודה שלישית) ועמודה הלאה.

  • אם המחרוזת היא רק מילה אחת שמשמעותה שאין רווח במחרוזת אז אנחנו רוצים שהמחרוזת עצמה כפלט. לשם כך, נפרט את התנאי באמצעות הצהרת If and Else עם סימן כוכבית (המציין תו אחד או יותר) כדלקמן:

  • אם יש רווח במחרוזת אז אנחנו רוצים לפצל את המחרוזת. לשם כך השתמשנו בפונקציה INSTR ו- INSTRREV שניהם כדי לברר את מיקום החלל הראשון ומיקום החלל האחרון בהתאמה. זה יעזור לנו למצוא את המילה הראשונה והמילה האחרונה במחרוזת בהתאמה.

פונקציית INSTR לוקחת את הטיעון להלן:

פרטי טיעון

  • התחלה: מאיזה מיקום להתחיל.
  • מחרוזת 1 : עלינו לתת ביטוי למחרוזת המחפשים.
  • String2: עלינו לציין את ביטוי המחרוזת אותו מחפשים.

בהשוואה ל- VbCompareMethod: ציון שיטת השוואה. כברירת מחדל, השוואה בינארית היא.

  • עלינו להשתמש בפונקציה VBA LEFT כדי לחלץ תווים שמאליים מהמחרוזת. השתמשנו ב'רווח האחרון -1 ' כדי לקבל את הדמויות השמאליות לפני הרווח האחרון.

עלינו להשתמש בפונקציות RIGHT ו- LEN כדי לחלץ את התווים הנכונים מהמחרוזת לאחר הרווח הראשון.

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

קוד:

 Sub SplittingNames () Dim s as String Dim FirstSpace as Long Dim LastSPace as Long Dim LastRow as Long Dim Row as Long Dim העמודה כגיליון ארוך 1. טווח ("B1"). בחר בחירה. שורה לשורה = 2 עד LastRow s = גיליון 1. תאים (שורה, 2). עמודה ערך = 3 אם s אוהבים "* *" ואז FirstSpace = InStr (1, s, "") LastSPace = InStrRev (s, "") גיליון 1. תאים (שורה, עמודה). ערך = שמאל (ים, LastSPace - 1) גיליון 1. תאים (שורה, עמודה + 1). ערך = ימני (ים, לן (ים) - FirstSpace) גיליון אחר1.תאים (שורה, עמודה). ערך = s סוף אם המשנה בסוף הסוף הבא 

יש לנו תוצאה עכשיו.