פורום שאלות ותשובות

ברוכים הבאים לפורום שאלות ותשובות באופיס

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

ש' שואל:

שלום רב,

איך להפוך טקסט לנוסחה? יש טקסט, למשל a*x+b אני רוצה באמצעות פקודה להפוך את הטקסט לנוסחא פעילה למשל ל=a*A1+b בתא אחר. עם שינוי הנוסחה בתא הראשון גם הנוסחה תשתנה.
 
תודה רבה
 
תשובה:
 
על מנת לפתור את הנושא יש להגדיר באקסל פונקציה מותאמת אישית ב-VBA.
 
1. בקובץ אקסל יש לפתוח את עורך VBA, להוסיף מודול חדש וללהגדיר את הפונקציה הבאה.
   הפונקציה מקבלת כפרמטרים נוסחה (טקסט), שמות פרמטרים וערכיהם.
   הפונקציה מחליפה את שמות הפרמטרים בערכים שהועברו ולאחר מכן מחשבת את הנוסחה ומחזירה את התוצאה. 
  
  

 

 
Public Function EvalFormula(strFormula As String, ParamArray arrParameters() As Variant) As Variant
    
    Dim i As Long

    For i = LBound(arrParameters) To UBound(arrParameters) Step 2
        strFormula = Replace(strFormula, arrParameters(i), arrParameters(i + 1))
    Next
    
    EvalFormula = Application.Evaluate(strFormula)
    
End Function
 

 

2. בגיליון אקסל יש להגדיר בתא B2 את הטקסט a*X+B, בתא C4 ערך לפרמטר a, בתא C5 ערך לפרמטר b ובתא B6 ערך לפרמטר X ואת הנוסחה הבא בתא B8 -

EvalFormula(B2,"X",C6,"a",C4,"b",C5)=

 

 

3. התוצאה - בתא B8 מחושבת הנוסחה שמוגדרת כטקסט בתא B2 עם הפרמטרים שהוגדרו בתאים C4-C6.

 


בברכה,
צוות אניפיט