דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. VBA הפיכת מספרים מהסוף להתחלה לוורד

VBA הפיכת מספרים מהסוף להתחלה לוורד

מתוזמן נעוץ נעול הועבר תוכנה
6 פוסטים 3 כותבים 252 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • searchnicksS מנותק
    searchnicksS מנותק
    searchnicks
    כתב ב נערך לאחרונה על ידי searchnicks
    #1

    חיפשתי באינטרנט ולא מצאתי מידע מתאים (או שלא ניסחתי נכון השאלה באנגלית).
    אני זקוק לקוד VBA שייקח מחרוזת ספרות בכל מקום במסמך, ויהפוך אותה.
    כך שהמחרוזת 15897 יהפוך ל79851, 21 יהפוך ל12, ו5 יישאר 5, וכדו.

    אודה להכוונה או לקישורים

    אם תשובתי פתרה את בעייתך, אנא לחץ על החץ הקטנטון שנמצא בסמוך לתשובה...

    תגובה 1 תגובה אחרונה
    1
    • searchnicksS מנותק
      searchnicksS מנותק
      searchnicks
      כתב ב נערך לאחרונה על ידי searchnicks
      #2

      מצאתי את הקישור הזה.

      הוא מציע להשתמש בשורות הבאות:

      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,}"
      

      אבל זה לא מוצא

      אם תשובתי פתרה את בעייתך, אנא לחץ על החץ הקטנטון שנמצא בסמוך לתשובה...

      yossizY תגובה 1 תגובה אחרונה
      1
      • מנחםמ מנותק
        מנחםמ מנותק
        מנחם
        כתב ב נערך לאחרונה על ידי מנחם
        #3

        @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
        
        תגובה 1 תגובה אחרונה
        2
        • yossizY מנותק
          yossizY מנותק
          yossiz
          השיב לsearchnicks ב נערך לאחרונה על ידי
          #4

          @searchnicks אמר בVBA הפיכת מספרים מהסוף להתחלה לוורד:

          ניסיתי להשתמש עם
          .Text = "[0-9]{1,}"

          אבל זה לא מוצא

          אולי יעזור להוסיף:

          .MatchWildcards = True
          

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          searchnicksS תגובה 1 תגובה אחרונה
          2
          • searchnicksS מנותק
            searchnicksS מנותק
            searchnicks
            השיב לyossiz ב נערך לאחרונה על ידי searchnicks
            #5

            @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
            

            אם תשובתי פתרה את בעייתך, אנא לחץ על החץ הקטנטון שנמצא בסמוך לתשובה...

            yossizY תגובה 1 תגובה אחרונה
            1
            • yossizY מנותק
              yossizY מנותק
              yossiz
              השיב לsearchnicks ב נערך לאחרונה על ידי
              #6

              @searchnicks אמר בVBA הפיכת מספרים מהסוף להתחלה לוורד:

              Selection.Find.Execute Replace:=wdReplaceAll

              אי אפשר על ידי replace. צריך להריץ את ה-find על כל המסמך בלולאה ואז בכל ריצה אתה מקבל את הטקסט שנמצא ב-Selection.Text

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              תגובה 1 תגובה אחרונה
              2

              בא תתחבר לדף היומי!
              • התחברות

              • אין לך חשבון עדיין? הרשמה

              • התחברו או הירשמו כדי לחפש.
              • פוסט ראשון
                פוסט אחרון
              0
              • דף הבית
              • קטגוריות
              • פוסטים אחרונים
              • משתמשים
              • חיפוש
              • חוקי הפורום