将文本字符串转换为电子表格中的公式

时间:2016-01-26 20:01:27

标签: excel vba google-apps-script google-sheets

我正在尝试开发一个交互式电子表格,为预算文档创建一个叙述。将有多种选择。一旦用户选择了一个项目,它将帮助他们计算总数。我想设置他们填写的选项框。例如,输入B1:B4将允许四个单元格。我将命名四个单元格中的每一个(即A,B,C,D)。在参考文档中,我想写各种公式。在某些情况下,我可能需要“(A + B)* C”在另一个我可能需要“A * B * C”或“(A + B + C)/ D”......电子表格会查找文本公式,然后我想转换它。因此,在查找发现“(A + B)* C”的情况下,我希望它将其转换为=(间接(A)+间接(B))*间接(C),然后从A获取值(这是B1),B(B2)等。

基本上,我想使用或创建与Excel的FORMULATEXT()函数完全相反的东西。我更愿意在Google表格中这样做,但如果需要,我愿意使用Excel。我对Google的脚本和VBA都有一个非常基本的了解,并且我愿意在必要时创建,但是甚至不确定如何解决它。

连连呢?

1 个答案:

答案 0 :(得分:0)

我在Google Apps脚本中找到了一种方法:

function reCalc() { 
var sheet = SpreadsheetApp.getActiveSheet();  
var src = sheet.getRange("J26");   // The cell which holds the formula
var str = src.getValue(); 
str = str.replace('A', 'indirect("OPTA")').replace('B', 'indirect("OPTB")').replace('C', 'indirect("OPTC")').replace('D', 'indirect("OPTD")').replace('ENR', 'indirect("ENR")'); 
var cell = sheet.getRange("J30");  // The cell where I want the results to be
cell.setFormula(str);              // Setting the formula.

}

感谢SpiderPig给我的想法!