-
אבקש לדון אותי לכ"ז, על הניסוחים הלא מקצועיים שלי, כלומר לא בטוח שבשפת התכנות תבינו אותי נכון, אולי בעברית...
זו הפונקציה הראשונה שאני מנסה ליצור... כלומר ניסיתי רבות, מקווה שהפעם באמת אצורניסיתי ליצור את הפונציה הבאה
Public Function מספרקטגורי(wordText As String) As Variant מספרקטגורי = Application.Index(Sheets("גיליון1").Range("T6:BF356"), Match("כא.", Sheets("גיליון1").Range("S6: S356"), 0), Match("wordText", Sheets("גיליון1").Range("T6:BF6"), 0)) End Function
השתמשתי בהצהרה
wordText
בפונקציית המשנהMatch
, האם זוהי הסיבה שפונקציה אינה פועלת? -
@פלורידה יש כאן טעות:
... Match("wordText", ...
שים לב, אתה מעביר לפונקציה
Match
מחרוזת קבועה שמכילה את התווים'wordText'
ולא את האובייקט wordText שמכיל את הערך שמועבר לפונקציהמספרקטגורי
מהגליון.
כדי להעביר את הערך, אתה צריך להעביר את האובייקט בלי להקיף את שמו בגרשיים, כך:... Match(wordText, ...
אגב, אני ממליץ לך מאוד לא להתפתות לתת שמות בעברית לפונקציות. עדיף לקרוא לפונקציה
CatalogNumber
. -
תודה לך.
רק להשלמת העניין:
היתה בעיה נוספת חמורה לא פחות.
בקריאה לפונקצייהMatch
יש להוסיףApplication
.
ככה:Public Function מספרקטגורי(wordText As String) As Variant מספרקטגורי = Application.Index(Sheets("מקט").Range("T6:BF356"), Application.Match("כא.", Sheets("מקט").Range("S6: S356"), 1), Application.Match(wordText, Sheets("מקט").Range("T6:BF6"), 1)) End Function
ובאגב, מהי הסיבה העומדת מאחורי ההמלצה?
-
@פלורידה אמר בפונקציית משנה אקסל:
מהי הסיבה העומדת מאחורי ההמלצה?
יש כמה דרכים להציג עברית ואנגלית יחד, כל אחת על יתרונותיה וחסרונותיה. הצד השווה שבכולן שמאז ומעולם עברית ואנגלית לא הסתדרו כמו שצריך ביחד במחשב, בפרט באותה השורה.
ראית פעם דבר כזה:
"...על המחשב שלך Windows אנו מתקינים את"
למה זה קורה? כי מישהו במייקרוסופט שכח להגדיר נכון את כיוון הפיסקה.אם תתחיל לערבב עברית בשמות של משתנים או פונקציות, כדי להקל על עצמך את ההבנה של הקוד, אתה בעצם תרוויח כאב ראש גדול, כי עורך הקוד מוגדר לכתוב פסקאות משמאל לימין.
מספיק קשה לנו בתור מתכנתים להכניס מחרוזות של טקסט עברי בקוד.
אם אתה מוכרח, תשתמש באנגלית פונטית ותקרא לפונקציהMisparKatalog
, זה עדיף בהרבה. -