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

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

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

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

מתוזמן נעוץ נעול הועבר תוכנה
6 פוסטים 3 כותבים 253 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
        • searchnicksS searchnicks

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

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

          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 מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי
          #4

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

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

          אבל זה לא מוצא

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

          .MatchWildcards = True
          

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

          searchnicksS תגובה 1 תגובה אחרונה
          2
          • yossizY yossiz

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

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

            אבל זה לא מוצא

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

            .MatchWildcards = True
            
            searchnicksS מנותק
            searchnicksS מנותק
            searchnicks
            כתב ב נערך לאחרונה על ידי 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
            • searchnicksS searchnicks

              @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 מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי
              #6

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

              Selection.Find.Execute Replace:=wdReplaceAll

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

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

              תגובה 1 תגובה אחרונה
              2
              תגובה
              • תגובה כנושא
              התחברו כדי לפרסם תגובה
              • מהישן לחדש
              • מהחדש לישן
              • הכי הרבה הצבעות


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

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

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