2016-08-24 62 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; 
} 

脚本将替换实际单元格值上的所有单元格引用。