我正在尝试在Google工作表中创建一个按钮,当按下该按钮时,会将工作表从单独的电子表格导入到当前的工作表中,并将其命名为“Miscellaneous”,后跟数字1到无穷大。
例如,第一次按下按钮时,它将导入一张纸并将其称为“杂项1”,第二次按下按钮将导入另一张名为“杂项2”的纸张,依此类推......
我有导入工作,现在我正在尝试使用计数器在“杂项”之后增加数字。有人能告诉我我做错了什么吗?错误发生在第22行
template.copyTo(currentSpreadsheet).setName(了newName);
var n = 0;
function countUp() {
n += 1;
}
function copyFromTemplate(){
var templateSpreadsheet = SpreadsheetApp.openById('1iXnLkMaPh73lcnkXP1yRV53H824y24FUa1a297OmAKk');
var template = templateSpreadsheet.getSheets()[0]; //Assuming it is the first sheet
//The default name will be "Copy of [original name]". We can use this to change it
countUp();
var newName = ("Miscellaneous " + n);
var currentSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
template.copyTo(currentSpreadsheet).setName(newName);
}
答案 0 :(得分:1)
据我所知,您想通过点击启动copyFromTemplate()
功能的按钮来增加计数器和复印表。如果我的理解是正确的,那么这个修改怎么样?
1iXnLkMaPh73lcnkXP1yRV53H824y24FUa1a297OmAKk
的源文件ID,以及您的脚本是否是目标电子表格的绑定脚本。n
,因此当您通过按钮启动copyFromTemplate()
时,计数器始终为1. 上面反映的修改后的脚本如下。
function countUp() {
var prop = PropertiesService.getScriptProperties();
var n = prop.getProperty("n");
n = n ? parseInt(n, 10) + 1 : 1;
prop.setProperty("n", n);
return n;
}
function copyFromTemplate(){
var templateSpreadsheet = SpreadsheetApp.openById('1iXnLkMaPh73lcnkXP1yRV53H824y24FUa1a297OmAKk');
var template = templateSpreadsheet.getSheets()[0];
var newName = ("Miscellaneous " + countUp());
var currentSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
template.copyTo(currentSpreadsheet).setName(newName);
}
countUp()
时,n
会增加1。copyFromTemplate()
时,计数器n
会增加,template
会以Miscellaneous "n"
的文件名复制到当前有效的电子表格。如果我误解了你的问题,我很抱歉。