在每个月末,自动按值替换公式

时间:2015-04-24 09:50:38

标签: google-sheets

列中是否可以按月底的值自动替换公式?

我正在考虑这样的事情,但它在Google表格中无效:

sub MyProgram()
DimMyRange As Range
set MyRange=Range("A1")
MyRange=MyRange.Value
End Sub

这是my sheet

2 个答案:

答案 0 :(得分:0)

正如Pnuts所说,这看起来非常像VBA for Excel。我还是不认识它是Javascript。 Google表格使用Javascript来扩展功能。

我已快速解决您的问题,并将其作为建议的解决方案。

    function formulaToValues(){
var columnWithFormula = 1; /* If Column A is 1, and B is 2, what column has the formulas to be changed into values */

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange(1, columnWithFormula, sheet.getLastRow(),1)
var values = range.getValues();

range.setValues(values);


}

您可以更改columnWithFormula& sheet部分以满足您的特殊需求。

然后,您可以通过转到资源--->将脚本附加到每月计时器。当前项目在脚本编辑器中触发。

答案 1 :(得分:0)

您可以参考Class ClockTriggerBuilderClass Range文档。编辑器中的Google文档和代码提示将告诉您需要知道的所有内容。

此脚本将运行函数' setVal'在每个月的第一天:

//Create a named range that encompasses your the cells you are interested in.
//Run 'createTrigger' from the Script Editor. Do not run anything else.

ss = SpreadsheetApp.getActiveSpreadsheet();

function createTrigger() {
  ScriptApp.
  newTrigger("setVal").
  timeBased().
  onMonthDay(1).
  create();
}

function setVal() {
  var range = ss.getRangeByName('NamedRangeContainingFormula');
  var vals = range.getValues();
  range.setValues(vals);
}

如果由于某种原因实际上需要在最后一天运行,则需要(1)一个能够获得下个月最后一天的功能,以及(2)一个将删除当前&#的触发器39; setVals'触发并创建一个新的。如果那是你真正需要的东西,请告诉我们。