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

腳本將替換實際單元格值上的所有單元格引用。