שאלה | עיצוב הערות שוליים | עזרה דחופה
-
@shishko
כאשר עושים לולאה צריך לעשות לולאה ביחס למשהו לדוגמא לפי מספר פסקאות.@pcinfogmach א"א לעשות עד שהחיפוש לא מוצא עוד אחד
מה שקורה עכשיו שהוא ממשיך בלי לעשות את החיפוש אני רוצה שיעצור לגמרי -
@pcinfogmach א"א לעשות עד שהחיפוש לא מוצא עוד אחד
מה שקורה עכשיו שהוא ממשיך בלי לעשות את החיפוש אני רוצה שיעצור לגמרי -
@shishko
מה בדיוק הקוד שלך
do while found או משהו אחר@pcinfogmach קוד שמחפש תו מסויים בוחר עד סוף השורה ופועל על זה השאלה איך עושים שהוא יחזור על הלולאה ובפעם שהוא לא מוצא את זה הוא יעצור את כל פעולת המאקרו
-
@pcinfogmach קוד שמחפש תו מסויים בוחר עד סוף השורה ופועל על זה השאלה איך עושים שהוא יחזור על הלולאה ובפעם שהוא לא מוצא את זה הוא יעצור את כל פעולת המאקרו
-
@shishko
do while found
או if not found@pcinfogmach לא בטוח שהבנתי מה אתה מתכוון נראה לי הראשון
-
@pcinfogmach לא בטוח שהבנתי מה אתה מתכוון נראה לי הראשון
אתה יוצא פעולת with find ובתוך ה- with אתה עושה תנאי עם ה-found או צנאי של לולאת while או פעולת if עם goto start
הנה דוגמא עם פעולת if (שהיא יותר בטוחה מן השנים) מתוך תוסף עיצוב ספרי קודש
Private Sub המרה_מספרים_לאותיות_בלשון_נקיה() Dim rng, oRange As range Set rng = Selection.range Set oRange = Selection.range With rng .End = .start .Select End With start: With Selection.Find .ClearFormatting .Execute FindText:="[0-9]{1,}", MatchWildcards:=True, Format:=False, Wrap:=wdFindContinue If Not Selection.range.InRange(oRange) Then GoTo ext If .Found = True Then mystring = "" MyArray = Array(400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) MyaArray = Array("ת", "ש", "ר", "ק", "צ", "פ", "ע", "ס", "נ", "מ", "ל", "כ", _ "י", "ט", "ח", "ז", "ו", "ה", "ד", "ג", "ב", "א") v = Val(Selection) Do While v > 0 If v = 15 Or v = 16 Then mystring = mystring & "ט" v = v - 9 End If For i = 0 To UBound(MyArray) If v >= MyArray(i) Then mystring = mystring & MyaArray(i) v = v - MyArray(i) Exit For End If Next i Loop If mystring = "רצח" Then mystring = "רחצ" If mystring = "רע" Then mystring = "ער" If mystring = "רעב" Then mystring = "ערב" If mystring = "שד" Then mystring = "דש" If mystring = "שמד" Then mystring = "שדמ" If mystring = "תשמד" Then mystring = "תדשם" If mystring = "רעה" Then mystring = "ערה" If mystring = "רעד" Then mystring = "עדר" If Len(mystring) = 1 Then mystring = mystring & "'" Else ' myString = Left(myString, Len(myString) - 1) & Chr(34) & Right(myString, 1) mystring = Left(mystring, (Len(mystring) - 1)) & Chr(34) & Right(mystring, 1) End If Selection = mystring GoTo start End If End With ext: rng.Select End Sub
-
אתה יוצא פעולת with find ובתוך ה- with אתה עושה תנאי עם ה-found או צנאי של לולאת while או פעולת if עם goto start
הנה דוגמא עם פעולת if (שהיא יותר בטוחה מן השנים) מתוך תוסף עיצוב ספרי קודש
Private Sub המרה_מספרים_לאותיות_בלשון_נקיה() Dim rng, oRange As range Set rng = Selection.range Set oRange = Selection.range With rng .End = .start .Select End With start: With Selection.Find .ClearFormatting .Execute FindText:="[0-9]{1,}", MatchWildcards:=True, Format:=False, Wrap:=wdFindContinue If Not Selection.range.InRange(oRange) Then GoTo ext If .Found = True Then mystring = "" MyArray = Array(400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) MyaArray = Array("ת", "ש", "ר", "ק", "צ", "פ", "ע", "ס", "נ", "מ", "ל", "כ", _ "י", "ט", "ח", "ז", "ו", "ה", "ד", "ג", "ב", "א") v = Val(Selection) Do While v > 0 If v = 15 Or v = 16 Then mystring = mystring & "ט" v = v - 9 End If For i = 0 To UBound(MyArray) If v >= MyArray(i) Then mystring = mystring & MyaArray(i) v = v - MyArray(i) Exit For End If Next i Loop If mystring = "רצח" Then mystring = "רחצ" If mystring = "רע" Then mystring = "ער" If mystring = "רעב" Then mystring = "ערב" If mystring = "שד" Then mystring = "דש" If mystring = "שמד" Then mystring = "שדמ" If mystring = "תשמד" Then mystring = "תדשם" If mystring = "רעה" Then mystring = "ערה" If mystring = "רעד" Then mystring = "עדר" If Len(mystring) = 1 Then mystring = mystring & "'" Else ' myString = Left(myString, Len(myString) - 1) & Chr(34) & Right(myString, 1) mystring = Left(mystring, (Len(mystring) - 1)) & Chr(34) & Right(mystring, 1) End If Selection = mystring GoTo start End If End With ext: rng.Select End Sub
@pcinfogmach כתב בשאלה | עיצוב הערות שוליים | עזרה דחופה:
For i = 0 To UBound(MyArray)
If v >= MyArray(i) Then
mystring = mystring & MyaArray(i)
v = v - MyArray(i)
Exit For
End If
Next iזה?
-
אתה יוצא פעולת with find ובתוך ה- with אתה עושה תנאי עם ה-found או צנאי של לולאת while או פעולת if עם goto start
הנה דוגמא עם פעולת if (שהיא יותר בטוחה מן השנים) מתוך תוסף עיצוב ספרי קודש
Private Sub המרה_מספרים_לאותיות_בלשון_נקיה() Dim rng, oRange As range Set rng = Selection.range Set oRange = Selection.range With rng .End = .start .Select End With start: With Selection.Find .ClearFormatting .Execute FindText:="[0-9]{1,}", MatchWildcards:=True, Format:=False, Wrap:=wdFindContinue If Not Selection.range.InRange(oRange) Then GoTo ext If .Found = True Then mystring = "" MyArray = Array(400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) MyaArray = Array("ת", "ש", "ר", "ק", "צ", "פ", "ע", "ס", "נ", "מ", "ל", "כ", _ "י", "ט", "ח", "ז", "ו", "ה", "ד", "ג", "ב", "א") v = Val(Selection) Do While v > 0 If v = 15 Or v = 16 Then mystring = mystring & "ט" v = v - 9 End If For i = 0 To UBound(MyArray) If v >= MyArray(i) Then mystring = mystring & MyaArray(i) v = v - MyArray(i) Exit For End If Next i Loop If mystring = "רצח" Then mystring = "רחצ" If mystring = "רע" Then mystring = "ער" If mystring = "רעב" Then mystring = "ערב" If mystring = "שד" Then mystring = "דש" If mystring = "שמד" Then mystring = "שדמ" If mystring = "תשמד" Then mystring = "תדשם" If mystring = "רעה" Then mystring = "ערה" If mystring = "רעד" Then mystring = "עדר" If Len(mystring) = 1 Then mystring = mystring & "'" Else ' myString = Left(myString, Len(myString) - 1) & Chr(34) & Right(myString, 1) mystring = Left(mystring, (Len(mystring) - 1)) & Chr(34) & Right(mystring, 1) End If Selection = mystring GoTo start End If End With ext: rng.Select End Sub
@pcinfogmach כתב בשאלה | עיצוב הערות שוליים | עזרה דחופה:
With Selection.Find
.ClearFormatting
.Execute FindText:="[0-9]{1,}", MatchWildcards:=True, Format:=False, Wrap:=wdFindContinue
If Not Selection.range.InRange(oRange) Then GoTo ext
If .Found = True Thenרק שים לב שבשביל הלולאה צריך להגדיר נקודת goto ואז בסוף כל פעולה לחזור אליה אא"כ התנאי לא התקיים
-
@menajemmendel איך עושים לולאה עד סוף המסמך
@shishko כתב בשאלה | עיצוב הערות שוליים | עזרה דחופה:
@menajemmendel איך עושים לולאה עד סוף המסמך
אני נאבדתי באשכול מה אתה רוצה לעשות, והאם ענו לך כבר, האם יש לך עדיין שאלה?
-
@shishko כתב בשאלה | עיצוב הערות שוליים | עזרה דחופה:
@menajemmendel איך עושים לולאה עד סוף המסמך
אני נאבדתי באשכול מה אתה רוצה לעשות, והאם ענו לך כבר, האם יש לך עדיין שאלה?
@menajemmendel עשיתי כמו שהסברת לי בחפש והחלף והכל הסתדר, תודה רבה.
-
@menajemmendel עשיתי כמו שהסברת לי בחפש והחלף והכל הסתדר, תודה רבה.
@menajemmendel איך עושים לולאה עד סוף המסמך
אני נאבדתי באשכול מה אתה רוצה לעשות, והאם ענו לך כבר, האם יש לך עדיין שאלה?
ישיבישער
השיב לmenajemmendel לפני 7 דקות
@menajemmendel עשיתי כמו שהסברת לי בחפש והחלף והכל הסתדר, תודה רבה.סליחה, התכוונתי לשאול את @shishko
-
@menajemmendel איך עושים לולאה עד סוף המסמך
אני נאבדתי באשכול מה אתה רוצה לעשות, והאם ענו לך כבר, האם יש לך עדיין שאלה?
ישיבישער
השיב לmenajemmendel לפני 7 דקות
@menajemmendel עשיתי כמו שהסברת לי בחפש והחלף והכל הסתדר, תודה רבה.סליחה, התכוונתי לשאול את @shishko
@menajemmendel אם יש לך דרך טובה ופשוטה ללולאה עד סוף המסמך משהו מעין הפקודה של הכפלת הלולאה מספר פעמים אני ישמח
לא הספקתי לבדוק את מה ש@pcinfogmach כתב
תודה רבה -
@menajemmendel אם יש לך דרך טובה ופשוטה ללולאה עד סוף המסמך משהו מעין הפקודה של הכפלת הלולאה מספר פעמים אני ישמח
לא הספקתי לבדוק את מה ש@pcinfogmach כתב
תודה רבה@shishko כתב בשאלה | עיצוב הערות שוליים | עזרה דחופה:
@menajemmendel אם יש לך דרך טובה ופשוטה ללולאה עד סוף המסמך משהו מעין הפקודה של הכפלת הלולאה מספר פעמים אני ישמח
לא הספקתי לבדוק את מה ש@pcinfogmach כתב
תודה רבהדבר זה תלוי מה אתה רוצה לעשות (וזה מה שכתב לך PCINFOGMACH), אין סתם ''לולאה כללית שירוץ על כל המסמך'', כי כפי שאתה יודע (או לא) VBA הוא תוכנה שעובדת מובססת על ''עצמים'', שזה אומר מטפל בכל ''עצם'' (אובייקט) בנפרד, ולולאה לכל המסמך אומר שיטפל בכל האובייקטים מאותו סוג שנמצאים במסמך הנוכחי.
לדוגמא:
אם תרצה לטפל בכל בהערות שוליים של מסמך, אז הלולאה יהיה כזה
תרוץ על כל הערה ותעשה כך וכך
(לדוגמא למחוק כל הערה)For Each ftnt In ActiveDocument.Footnotes ftnt.Delete Next ftnt
אם תרצה לטפל בכל פיסקה (כדוגמא חלון) אז הלולאה יהיה כזה: תרוץ על כל פיסקה במסמך ותעשה כך וכך
For Each piska In ActiveDocument.Paragraphs bla bla bla Next piska
לכן אי אפשר לומר משהו כללי
מקווה שהובנתי, סתם שתדע שלשאלות מהסוג הזה, אתה תמיד יכול לנסות בGPT -
@pcinfogmach קוד שמחפש תו מסויים בוחר עד סוף השורה ופועל על זה השאלה איך עושים שהוא יחזור על הלולאה ובפעם שהוא לא מוצא את זה הוא יעצור את כל פעולת המאקרו
@shishko כתב בשאלה | עיצוב הערות שוליים | עזרה דחופה:
קוד שמחפש תו מסויים בוחר עד סוף השורה ופועל על זה השאלה איך עושים שהוא יחזור על הלולאה ובפעם שהוא לא מוצא את זה הוא יעצור את כל פעולת המאקרו
הקוד שלי כנ"ל
אנסה בצ'אט GPT כשיהיה לי זמן
תודה רבה