VBA הפיכת מספרים מהסוף להתחלה לוורד
-
חיפשתי באינטרנט ולא מצאתי מידע מתאים (או שלא ניסחתי נכון השאלה באנגלית).
אני זקוק לקוד VBA שייקח מחרוזת ספרות בכל מקום במסמך, ויהפוך אותה.
כך שהמחרוזת 15897 יהפוך ל79851, 21 יהפוך ל12, ו5 יישאר 5, וכדו.אודה להכוונה או לקישורים
-
מצאתי את הקישור הזה.
הוא מציע להשתמש בשורות הבאות:
Dim MyString As String Dim BackString As String MyString = "ABCD1234" BackString = StrReverse(MyString
כיצד אני יכול להוסיף לו אפשרות שהמשתנה יהיה רצף ספרות מרווח עד רווח במסמך ואותו יהפוך?
כלומר כיצד לשלב את זה בקוד הבא
Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "á5" .Replacement.Text = "á-" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll
ניסיתי להשתמש עם
.Text = "[0-9]{1,}"
אבל זה לא מוצא
-
@searchnicks יכול להיות שיש קוד מובנה שעושה את זה
אבל בכל אופן הקוד הבא יחליף לך, אבל כל פעם הוא מחליף פעם אחת. אם יש לך מסמך ארוך תצטרך להפעיל אותו הרבה פעמים, או שתמצא קוד שיקצר את הדרך.Sub Macro1() ' ' Macro1 Macro ' ' Selection.Find.ClearFormatting With Selection.Find .Text = "[0-9]{1,}" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute OldNom = Selection.Text NewNom = StrReverse(OldNom) Selection.TypeText NewNom End Sub
-
@searchnicks אמר בVBA הפיכת מספרים מהסוף להתחלה לוורד:
ניסיתי להשתמש עם
.Text = "[0-9]{1,}"אבל זה לא מוצא
אולי יעזור להוסיף:
.MatchWildcards = True
-
@yossiz תודה
זה עזראך כעת אני לא מצליח לבטא את המחרוזת מספרים כמשתנה (num)כדי לשלוח אותו לפוקנציית ההחלפה
Sub Reverse() Dim num As String With Selection.Find .Text = "[0-9]{1,}" num = .Text//num מקבל את "[0-9]{1,}", ולא את המספר. .Replacement.Text = StrReverse(num) .Forward = True .Wrap = wdFindContinue .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
-
@searchnicks אמר בVBA הפיכת מספרים מהסוף להתחלה לוורד:
Selection.Find.Execute Replace:=wdReplaceAll
אי אפשר על ידי replace. צריך להריץ את ה-find על כל המסמך בלולאה ואז בכל ריצה אתה מקבל את הטקסט שנמצא ב-
Selection.Text