0

在我的谷歌电子表格中,我创建了一个脚本(如下),它为我提供了函数/公式来获取我当前所在的工作表/选项卡的名称。

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

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

这是我下面的脚本:

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

这是同花顺:

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

请让我知道我需要进行哪些更改,以便可以在更改工作表名称时进行更新。

4

1 回答 1

0

此功能在连接到 onChange 触发器并且工作表名称发生更改时起作用。我认为您将其作为“=sheetName()”添加到单元格中。我不得不承认我对自定义函数了解不多,因为我总是在数组中进行所有计算,因为它要快得多。但是,如果您将其连接到 onChange 事件并将工作表名称的加载值设置到一个单元格中,它就可以工作。

function sheetName()
{
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getActiveSheet();
  var name=sht.getName();
  sht.getRange('A5').setValue(name);
}
于 2017-06-17T17:02:16.257 回答