פורסם 2012 במרץ 1813 שנים יש לי מחרוזת עם אנטרים אחריה. איך אפשר למחוק את השורות הריקות, שתהיה לי רק המחרוזת? (TRIM אינו עוזר)תודה
פורסם 2012 במרץ 1813 שנים לא מספיק טוב, כי ככה אתה מוחק את כל ירידות השורה והופך את כל הטקסט לשורה אחת. בעקרון צריך למצוא את כל המקומות שבהם יש שתי ירידות שורה ולהחליף אותן באחת. כנראה הכי נוח לעשות את זה עם ביטויים רגולריים, אבל נראה ש-VBA לא ממש תומכת בהם באופן פשוט, ככה שהפתרון שהייתי ממליץ עליו הוא לעבור על המחרוזת באמצעות לולאה ולמחוק את התווים המיותרים ידנית.
פורסם 2012 במרץ 1813 שנים סוף שורה מצוין ע"י זוג התווים המכונים בשמות "carriage return" (ובקיצור CR) ו-"line feed" (ובקיצור LF).vbCrLf היא מחרוזת קבועה המכילה את שני התווים האלה.מה שהציע מולטיפרוסס מוחק את כל המופעים של vbCrLf במחרוזת שלך. הבעיה היא שזה מוחק את כל סופי השורה בכלל.דרך אחת היא להחליף כל מופע כפול של vbCrLf במופע יחיד, דהיינו:teststring = Replace(teststring, vbCrLf & vbCrLf, vbCrLf)הבעיה היא שאם יש יותר משורה אחת ריקה ברצף, זה לא ימחק את כל השורות הריקות. פתרון אפשרי לזה הוא לעשות את הפעולה הנ"ל בלולאה, עד שהמחרוזת כבר לא מכילה פעמיים vbCrLf ברצף, דהיינו:Do While InStr(teststring, vbCrLf & vbCrLf) > 0 teststring = Replace(teststring, vbCrLf & vbCrLf, vbCrLf)Loopזה לא פתרון יעיל (הוא עובר על המחרוזת כמה פעמים), אבל הוא הכי פשוט מבחינת קוד.
פורסם 2012 במרץ 1913 שנים מחבר זה בכלל לא נכנס לי לתנאי של הלולאהInStr(str, vbCrLf & vbCrLf) = 0 למרות שיש לי שורות ריקות בסוף המחרוזת
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.