עבור לתוכן

צריך רעיונות לייעול קוד בVBA.

Featured Replies

פורסם

טוב הרעיון הוא כזה: יש לי שני מספרים (לרוב נעים בין 100 ל10000) אני רוצה, על פי המנה ביניהם לדעת מי הגדול יותר מביניהם ובכמה הוא גדול, ואז אני מעניק נקודות למספר שגדול יותר מהמספר השני- אני בכוונה לא משתמש במספרים עצמם כי אני לא רוצה קנה מידה מדוייק של מי יותר גדול אלה אם נניח הם ב"איזור" אחד של השני נניח 2000 ו2010 אז מבחינתי הם שווים אחד לשני.

קודם כל תסתכלו על הקטע קוד שעשיתי שתבינו מה הקטע:

Glob1\2 הם שני המספרים שלי, K1\2Score הם הניקוד שמקבל כל אחד מהמספרים:


K1Score = 0: K2Score = 0
Select Case Glob1 / Glob2
Case Is > 3: K1Score = 2
Case 1.0000000001 To 3: K1Score = 1
Case 0.3 To 0.9999999999: K2Score = 1
Case Is < 0.3: K2Score = 2
End Select

פה מגיע הקטע הטריקי, אני רוצה לבנות פונקציה שתקבל את שני המספרים ותעניק להם ניקוד על פי פרמטר שהיא מקבלת, אותו פרמטר צריך להביע כמה שורות כאלה של Case אני כביכול צריך לשים (אם יש לכם שיטה אחרת מCase זה יתקבל בברכה), לדוגמא: אם הפרמטר יהיה נניח 4 אז לגבי ה4 caseים הראשונים הם יעניקו נקודות בסדר עולה 1,2,3,4 כך שככל שהמחולק יותר גדול מהמחלק (Glob2) הוא יקבל יותר ניקוד ואם הוא גדול מהמחלק פי 4 (הפרמטר) אז פשוט יקבל ניקוד של 4 נקודות ולא יותר מזה.-אם הפרטמר היה נניח 7 אז היינו אומרים שאם גדול פי 7 אז היה מקבל 7 נקודות.

אותו דבר לגבי אם המחולק קטן יותר מהמחלק(Glob2), במקרה הזה נעניק יותר נקודות למחלק בגלל שהוא יותר גדול. שוב אני מזכיר שחשוב לי על פי הפרמטר להחליט שאם המספרים ב"איזור" אחד של השני נניח במקרה של פרמטר 4 ,אז 100 ו150 הם מבחינתי שווים ויקבלו את אותו הניקוד.

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים