שאלה קטנה על מאקרו (שתוביל אולי לשאלה קצת יותר גדולה)

pinkys brain1

New member
שאלה קטנה על מאקרו (שתוביל אולי לשאלה קצת יותר גדולה)

הי,
אני מנסה לבנות איזשהוא דוח במאקרו, ואני די מתחיל בתחום..

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

כאשר ניסיתי להקליט קטע קוד שמכיל בתוכו נוסחת מערך, התקבל קוד מוקלט - אבל כאשר ניסיתי להריץ את הקוד הזה (שהוקלט, ללא שינויים) קיבלתי הודעת שגיאה:
"אין אפשרות להגדיר את המאפיין FormulaArray של המחלקה range"
ולא כ"כ הבנתי מה משמעות הדבר (אני מריץ את קטע הקוד שהאקסל עצמו הקליט, והוא טוען שיש בעיה בקטע הקוד שהוא עצמו כתב
)

ואם להיות יותר ספציפיים, אני ממחזר כרגע שאלה שעלאתי לפורום כמה חודשים (כנראה רבים) ואשר קיבלתי עליה תשובה שנותנת מענה על הבעיה.
מדובר על אוכלוסיית עובדים שלכל אחד יש מזהה ונגררת סטטוסים (לביצוע משהו), והמטרה הייתה לראות כמה זמן רצוף כל עובד שוהה בסטטוס הנוכחי שלו

הנוסחא שניתנה בזמנו לבעיה הייתה נוסחת המערך הבאה: (לא הוספתי כאן את ה-ctrl+shift+enter שיוצרת את ה-{} אבל באקסל עצמו כמובן שמופיעה
=IF(MAX(--(((F2=F$2:F$699993)*B$2:B$699993)=B2)*(COUNTIF(F$2:F$699993,F2)>1))*(COUNTIF(F$2:F2,F2)=1),TODAY()-MIN(IF((F2=F$2:F$699993)*B$2:B$699993>MAX((A2=A$2:A$699993)*(F2<>F$2:F$699993)*B$2:B$699993),B$2:B$699993)),"")
לאחר שהקלטתי את ביצוע הכנסת הנוסחא הזאת, כולל ה-ctrl+shift+enter ואז העתקת הנוסחא לכל תאי הגיליון, קטע הקוד שנוצר במאקרו הוא:
קוד:
Sub test()
'
'

'
    Selection.FormulaArray = _
        "=IF(MAX(--(((RC[-1]=R2C[-1]:R699993C[-1])*R2C[-5]:R699993C[-5])=RC[-5])*(COUNTIF(R2C[-1]:R699993C[-1],RC[-1])>1))*(COUNTIF(R2C[-1]:RC[-1],RC[-1])=1),TODAY()-MIN(IF((RC[-1]=R2C[-1]:R699993C[-1])*R2C[-5]:R699993C[-5]>MAX((RC[-6]=R2C[-6]:R699993C[-6])*(RC[-1]<>R2C[-1]:R699993C[-1])*R2C[-5]:R699993C[-5]),R2C[-5]:R699993C[-5])),"""")"
    Selection.AutoFill Destination:=Range("G2:G12")
    Range("G2:G12").Select
End Sub

אבל אז, אם אני מוחק את הנתונים מעמודה G ומנסה להריץ אותה שוב, מתקבלת הודעת השגיאה הכתובה למעלה..

מצורף הגיליון לדוגמא עם הנתונים עליהם הרצתי את הקלטת המאקרו

אשמח אם מישהו יוכל להסביר לי מה הבעיה (ואיך פותרים אותה), בינתיים השיטה (הלא מאוד חכמה אבל בשביל התחלה זה נראה לי בסדר) של הקלטה, ניסיון הבנת הנוסחא ואז יישום שלה אצלי דווקא עבד טוב, אבל הפעם קיבלתי הקלטת קטע קוד שאני אפילו לא מצליח כ"כ להבין


תודה מראש
 

pinkys brain1

New member
ניסיתי לקרוא קצת מה עלולות להיות הבעיות של הנוסחא

וראיתי שיש סיכוי שאולי זה קורה בגלל שהנוסחא "ארוכה מדי" (יותר מ-256 תווים)?
&nbsp
אם אכן בכך מדובר, מה אני יכול לעשות בנידון?
(אגב, כאשר הקלטתי את הנוסחא שמתי שם ערך גבוה 700000 כי רציתי שהנוסחא תעבוד גם עבור גיליונות שיש בהם הרבה מאוד שורות, ולא הצלחתי להזין בנוסחא משהו כמו F;F..
אגב2, ניסיתי להשתמש ב" " כדי להזין לתוך G2 ישירות את הסטרינג, במקום להשתמש בכל הפורמטים האלה של R_C_, אבל גם זה החזיר לי את אותה שגיאה..)
 
למעלה