在我的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();
}
请告诉我需要进行哪些更改,以便在更改工作表名称时更新。
答案 0 :(得分:0)
此功能在连接到onChange触发器并更改工作表名称时有效。我认为你将它添加到单元格中" = sheetName()"。我不得不承认我对自定义函数了解不多,因为我总是在数组中进行所有计算,因为它的速度要快得多。但是,如果你将它连接到onChange事件并将工作表名称的加载值设置为它工作的单元格。
function sheetName()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getActiveSheet();
var name=sht.getName();
sht.getRange('A5').setValue(name);
}