我设计了一个电子表格来跟踪企业中系统的状态。 它每12小时更新一次,然后根据日期和报告编号手动重命名,然后归档。
我创建了一个脚本,允许用户通过按下图形来创建当前电子表格的副本
function copyDocs() {
for(i=0; i<1; i++){
var drive=DriveApp.getFileById('190X72ZGwHtKaUa5MQerlW2k1ops-zYTnr1UXwuweJxGY');
drive.makeCopy();
}
}
我创建了一个脚本,允许用户通过按下图形将所有数据字段重置为空。
function reset() {
var s = SpreadsheetApp.getActive().getSheetByName('STATUS');
s.getRange("a2:b4").clearContent();
s.getRange("c3:d4").clearContent();
s.getRange("e2:f4").clearContent();
s.getRange("b5").clearContent();
s.getRange("e5:f5").clearContent();
s.getRange("c6:d6").clearContent();
s.getRange("f6").clearContent();
s.getRange("c7:f10").clearContent();
s.getRange("a12:f18").clearContent();
s.getRange("b20:f25").clearContent();
s.getRange("b27:f31").clearContent();
s.getRange("b33:f37").clearContent();
s.getRange("b39:f39").clearContent();
s.getRange("b41:f46").clearContent();
s.getRange("b48:f52").clearContent();
s.getRange("b54:f58").clearContent();
s.getRange("b60:f60").clearContent();
s.getRange("b62:f79").clearContent();
s.getRange("b81:f81").clearContent();
s.getRange("d83:f91").clearContent();
s.getRange("d94:f96").clearContent();
s.getRange("d98:f105").clearContent();
s.getRange("d107:f109").clearContent();
s.getRange("c112:f123").clearContent();
s.getRange("b113:f113").clearContent();
s.getRange("b115:f115").clearContent();
s.getRange("b117:f117").clearContent();
s.getRange("b119:f119").clearContent();
s.getRange("b121:f121").clearContent();
s.getRange("b123:f123").clearContent();
s.getRange("d124:f124").clearContent();
}
我想做的是拥有一个&#34;按钮&#34;对于他们按下的用户,它连续运行四个脚本。我试图通过最佳方式来实现这一点,这就是我需要帮助的地方。
将他们当前正在处理的电子表格重命名为合并单元格中的数据(A2:B4),它将是一个类似&#34; 17-087&#34;
制作将自动保存在同一文件夹中的整个电子表格的副本
清除&#34;重置&#34;中特定单元格的数据上面的脚本
从单元格中的数据重命名当前电子表格&#39; J2&#39;
理论上,用户将按下一个按钮,它会将电子表格(不是表格,而是整个文件)重命名为合并单元格中的数据,即。 &#34;状态17-087&#34;,然后它将复制整个电子表格(文件),然后清除所有指定的单元格,然后将电子表格重命名为&#39; J2&#39;这是&#34; STATUS TEMPLATE&#34;。
任何人都可以帮我解决这个多步骤脚本吗? 提前谢谢。
答案 0 :(得分:1)
可以尝试这样的事情:
var ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
// Add a menu item based on properties (doesn't work in AuthMode.NONE).
var items = [
{name: 'Backup', functionName: 'backup'},
];
ss.addMenu('Backup', items);
}
function backup() {
rename();
copyDocs();
reset();
rename2();
}
function rename(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var first = ss.getSheetByName("Sheet1");
// renames the google sheet to the data that is in 2nd Row, 3rd Column
ss.rename(first.getRange(2, 3).getValue());
}
function copyDocs() {
for(i=0; i<1; i++){
var drive=DriveApp.getFileById('190X72ZGwHtKaUa5MQerlW2k1ops-zYTnr1UXwuweJxGY');
drive.makeCopy();
}
}
function reset() {
var s = SpreadsheetApp.getActive().getSheetByName('STATUS');
s.getRange("a2:b4").clearContent();
s.getRange("c3:d4").clearContent();
s.getRange("e2:f4").clearContent();
s.getRange("b5").clearContent();
s.getRange("e5:f5").clearContent();
s.getRange("c6:d6").clearContent();
s.getRange("f6").clearContent();
s.getRange("c7:f10").clearContent();
s.getRange("a12:f18").clearContent();
s.getRange("b20:f25").clearContent();
s.getRange("b27:f31").clearContent();
s.getRange("b33:f37").clearContent();
s.getRange("b39:f39").clearContent();
s.getRange("b41:f46").clearContent();
s.getRange("b48:f52").clearContent();
s.getRange("b54:f58").clearContent();
s.getRange("b60:f60").clearContent();
s.getRange("b62:f79").clearContent();
s.getRange("b81:f81").clearContent();
s.getRange("d83:f91").clearContent();
s.getRange("d94:f96").clearContent();
s.getRange("d98:f105").clearContent();
s.getRange("d107:f109").clearContent();
s.getRange("c112:f123").clearContent();
s.getRange("b113:f113").clearContent();
s.getRange("b115:f115").clearContent();
s.getRange("b117:f117").clearContent();
s.getRange("b119:f119").clearContent();
s.getRange("b121:f121").clearContent();
s.getRange("b123:f123").clearContent();
s.getRange("d124:f124").clearContent();
}
function rename2(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var first = ss.getSheetByName("Sheet1");
// renames the google sheet to the data that is in J2
ss.rename(first.getRange(2, 10).getValue());
}