2016-08-24 9 views
0

式を評価する関数をスクリプト化するのに助けが必要です。入力した値で評価式を表示

例:

Cell A1 = 1 
Cell B1 = 2 
Cell C1 = A1 + B1, which displays the sum of two numbers = 3 
Cell D1 `= 1 + 2, which displays above formula with entered values 

私はこれをどのように行うことができますか?

UPDATE

私はそれをやった式を取り、それが式パラメータで入力した値なしであるとして、それを表示するだけのスクリプト、すなわち `= A1 + B1の

function GETFORMULA(reference) { 
    var ss = SpreadsheetApp; 
    var sheet = ss.getActiveSheet(); 
    var formula = ss.getActiveRange().getFormula(); 
    var args = formula.match(/=\w+\((.*)\)/i); 
    try { 
    var range = sheet.getRange(args[1]); 
    } 
    catch(e) { 
    throw new Error(args[1] + ' is not a valid range'); 
    } 
    return range.getFormula(); 
} 

答えて

0

を発見しました!数式評価スクリプトが準備完了です。

function eval(reference) { 
    var ss = SpreadsheetApp; 
    var sheet = ss.getActiveSheet(); 
    var commandFormula = ss.getActiveRange().getFormula(); 
    var commandFormulaArgs = commandFormula.match(/=\w+\((.*)\)/i); 
    try { 
    var commandFormulaRange = sheet.getRange(commandFormulaArgs[1]); 
    } 
    catch(e) { 
    throw new Error(args[1] + ' is not a valid range'); 
    } 

    var calcFormula = commandFormulaRange.getFormula(); 
    var calcFormulaArgs = calcFormula.match(/(\w+)/gi); 

    for(var i in calcFormulaArgs){ 
    try { 
     calcFormula = calcFormula.replace(calcFormulaArgs[i], " " + sheet.getRange(calcFormulaArgs[i]).getValue() + " "); 
    } 
    catch(e) { 
     throw new Error(args[1] + ' is not a valid range'); 
    } 
    } 

    return calcFormula; 
} 

実際のセル値のすべてのセル参照を置き換えます。