工作表名称未使用脚本进行更新

时间:2017-06-16 14:27:05

标签: javascript google-apps-script google-sheets google-sheets-formula custom-function

在我的Google电子表格中,我创建了一个脚本(下方),它为我提供了函数/公式,以获取我当前所在的工作表/标签的名称。

问题是当我将工作表名称更改为新名称时,即使经过多次刷新,此单元格也不会使用新名称进行更新。

我已设置触发器来运行脚本,并且我已使用SpreadsheetApp.flush()强制应用所有待处理的电子表格更改,但仍然无效。

这是我的下面的脚本:

QueryBuilder qb = boolQuery()
                .must(QueryBuilders.termQuery("machineNumber", machineNumber))
                .must(QueryBuilders.rangeQuery("epoch").gte(startDate).lte(endDate));

        FilterFunctionBuilder[] functions = {
            new FunctionScoreQueryBuilder.FilterFunctionBuilder(
            ScoreFunctionBuilders.gaussDecayFunction("epoch", "1493775811046", "1s")
            )
        };

SearchResponse nearest_temp_ej = client.prepareSearch("temperature-test-2")
                .setTypes("type")
                .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                .setQuery(QueryBuilders.functionScoreQuery(qb).filterFunctionBuilders(functions))
                .execute().actionGet();

这就是同花顺:

function sheetname() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getActiveRange().getSheet();
   return s.getName();
}

请告诉我需要进行哪些更改,以便在更改工作表名称时更新。

1 个答案:

答案 0 :(得分:0)

此功能在连接到onChange触发器并更改工作表名称时有效。我认为你将它添加到单元格中" = sheetName()"。我不得不承认我对自定义函数了解不多,因为我总是在数组中进行所有计算,因为它的速度要快得多。但是,如果你将它连接到onChange事件并将工作表名称的加载值设置为它工作的单元格。

function sheetName()
{
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getActiveSheet();
  var name=sht.getName();
  sht.getRange('A5').setValue(name);
}