תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

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

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

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

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

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

      תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • searchnicks
        searchnicks נערך לאחרונה על ידי 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,}"
        

        אבל זה לא מוצא

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

        yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 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
          
          תגובה 1 תגובה אחרונה תגובה ציטוט 2
          • yossiz
            yossiz @searchnicks נערך לאחרונה על ידי

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

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

            אבל זה לא מוצא

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

            .MatchWildcards = True
            

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

            searchnicks תגובה 1 תגובה אחרונה תגובה ציטוט 2
            • searchnicks
              searchnicks @yossiz נערך לאחרונה על ידי 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
              

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

              yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • yossiz
                yossiz @searchnicks נערך לאחרונה על ידי

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

                Selection.Find.Execute Replace:=wdReplaceAll

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

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

                תגובה 1 תגובה אחרונה תגובה ציטוט 2
                • 1 / 1
                • פוסט ראשון
                  פוסט אחרון
                בא תתחבר לדף היומי!