ש' שואל:
שלום רב,
איך להפוך טקסט לנוסחה? יש טקסט, למשל 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
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.
בברכה,
צוות אניפיט