好吧,我知道Google表格中的脚本编写内容,尤其是ImportRange函数。但是,这不仅是简单的导入,因为必须满足一些条件。
就这样。 在一个Google表格文件中,我有5张。
第1页包含任务和详细信息,列在A-P列中(因此占用了整整一行)。根据Q列的数据验证选项中显示的内容将任务分配给一个人。
同时,对于表格2-5,它们是数据验证选项中每个人的表格。工作表1中的任务应根据工作表1的Q列中分配的人员转移到工作表2-5。
在工作流程POV中,这将与流量有关。我应该在脚本编辑器中输入什么代码?
答案 0 :(得分:0)
这是一个可以建立的简单示例:
function assignTask() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=rg.getValues();
var today=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy");
for(var i=1;i<vA.length;i++){
if(!vA[i][3]){
var sht=ss.getSheetByName(vA[i][2]);
if(sht){
sht.appendRow([vA[i][0],today]);
}else{
var sht=ss.insertSheet(vA[i][2]);
sht.appendRow(['Task','Date'])
sht.appendRow([vA[i][0],today]);
}
vA[i][3]='Done';
vA[i][1]=today;
}
}
rg.setValues(vA);
}
电子表格看起来像这样:
运行脚本后,如下所示:
如果此人的工作表不存在,它将创建它并在创建后将标题信息放入其中。如果存在该行,则仅将其追加到底部。分配的任务在分配的列中具有“完成”,并且在日期列中具有它们的分配日期。显然,您还有很多其他可以做的事情,所以请尽情享受。
要回答您的问题: 您的函数将复制列。
function copyColumns() {
var srcSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
var desSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");
var cA = ['A','C','D','F'];
var pA = ['A','B','C','D'];
for(var i=0;i<cA.length;i++){
srcSheet.getRange(cA[i] + ':' + cA[i]).copyTo(desSheet.getRange(pA[i] + ':' + pA[i]));
//src colA to des colA, src colc to des colB,src colD to des colC,src colF to des colD
}
}
查看这些参考: