Google return sheet 名称的工作表脚本不会在创建新 sheet 时自动更新
Google Sheets Script to return sheet name will not automatically update on creating a new sheet
我已经在 Google 表格中编写了一个脚本 return 给定 sheet 的名称(见下文)。
该函数被写入摘要sheet,其中输入作为sheet 所需的索引给出。我已经预先编写了所有功能,例如
A1 = GetSheet(1) B1 = GetSheet(2) C1 = GetSheet(3) ...等等
显然,当带有相关索引的 sheet 还不存在时,我得到一个错误。但是,当我创建那个 sheet 时,单元格不会自动更新为新 sheet 的名称,它仍然 return 是一个错误。为了让名称出现,我必须删除函数并重新粘贴它。
有没有一种方法可以让单元格在添加新的 sheet 时自动更新,而无需重新输入函数?
抱歉,如果我遗漏了一些明显的东西,我对此很陌生!
function GetSheet(input)
{
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = SpreadsheetApp.getActiveSheet();
var sourceIndex = sourceSheet.getIndex();
var nextIndex = sourceIndex + 1;
var ss = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(ss.getSheets()[input]);
var active = ss.getActiveSheet();
var name = active.getName();
return name
}
不改变,因为他们的输入没有改变
您的自定义函数在您创建另一个 sheet 时不返回任何内容的原因是,这些类型的函数的输入通常预期是单元格引用,并且函数将在这些函数的值时重新计算单元格引用更改。但是你的输入只是数字(allSheets()数组的索引和创建另一个 sheets 不会改变他们的任何输入,所以他们永远没有机会 运行。我不认为创建一个新的 sheet 将触发一个 onChange 我认为这些是唯一触发 onChange 事件的东西。
EDIT, INSERT_ROW, INSERT_COLUMN, REMOVE_ROW, REMOVE_COLUMN, INSERT_GRID, REMOVE_GRID, FORMAT and OTHER
诚然,我不知道 OTHER 是什么,所以也许还有希望。
我已经在 Google 表格中编写了一个脚本 return 给定 sheet 的名称(见下文)。
该函数被写入摘要sheet,其中输入作为sheet 所需的索引给出。我已经预先编写了所有功能,例如
A1 = GetSheet(1) B1 = GetSheet(2) C1 = GetSheet(3) ...等等
显然,当带有相关索引的 sheet 还不存在时,我得到一个错误。但是,当我创建那个 sheet 时,单元格不会自动更新为新 sheet 的名称,它仍然 return 是一个错误。为了让名称出现,我必须删除函数并重新粘贴它。
有没有一种方法可以让单元格在添加新的 sheet 时自动更新,而无需重新输入函数?
抱歉,如果我遗漏了一些明显的东西,我对此很陌生!
function GetSheet(input)
{
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = SpreadsheetApp.getActiveSheet();
var sourceIndex = sourceSheet.getIndex();
var nextIndex = sourceIndex + 1;
var ss = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(ss.getSheets()[input]);
var active = ss.getActiveSheet();
var name = active.getName();
return name
}
不改变,因为他们的输入没有改变
您的自定义函数在您创建另一个 sheet 时不返回任何内容的原因是,这些类型的函数的输入通常预期是单元格引用,并且函数将在这些函数的值时重新计算单元格引用更改。但是你的输入只是数字(allSheets()数组的索引和创建另一个 sheets 不会改变他们的任何输入,所以他们永远没有机会 运行。我不认为创建一个新的 sheet 将触发一个 onChange 我认为这些是唯一触发 onChange 事件的东西。
EDIT, INSERT_ROW, INSERT_COLUMN, REMOVE_ROW, REMOVE_COLUMN, INSERT_GRID, REMOVE_GRID, FORMAT and OTHER
诚然,我不知道 OTHER 是什么,所以也许还有希望。