Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google Sheets OneEdit脚本:从特定列复制值_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script Google Sheets OneEdit脚本:从特定列复制值

Google apps script Google Sheets OneEdit脚本:从特定列复制值,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我们正在使用谷歌表来跟踪出勤情况。以前,教师在每节课上都要输入P、T或A(目前、迟到、缺席)。我仍然希望用户可以选择为一周内的每个时段输入一个值,但是如果他们可以为一整天输入一个值,这将是一个巨大的时间节省 我想要的是,如果在“0”期间(绿色列)的任何一个输入值时带有“p”或“a”(数据验证限制了这些选项),则OnEdit函数会将相同的字母(“p”或“a”)复制到以下8列,然后删除原始值。(如果不删除,最右侧列上的总计将关闭)。我不希望基于任何非绿色列中的编辑激活OnEdit 我最终会有几个标签

我们正在使用谷歌表来跟踪出勤情况。以前,教师在每节课上都要输入P、T或A(目前、迟到、缺席)。我仍然希望用户可以选择为一周内的每个时段输入一个值,但是如果他们可以为一整天输入一个值,这将是一个巨大的时间节省

我想要的是,如果在“0”期间(绿色列)的任何一个输入值时带有“p”或“a”(数据验证限制了这些选项),则OnEdit函数会将相同的字母(“p”或“a”)复制到以下8列,然后删除原始值。(如果不删除,最右侧列上的总计将关闭)。我不希望基于任何非绿色列中的编辑激活OnEdit

我最终会有几个标签,每一个不同的一周,但每个完全相同。。。所以我认为这个函数应该在activesheet中工作


谢谢你的帮助,

我写了一些代码让你开始你的项目。(我也是一名教师)你必须根据你的目标做出一些改变,并且可能会对其进行优化,以使其跑得更快。祝你好运

function onEdit(e) {

  //create an array of the columns that will be affected
  var allColumns = [2, 10];

  //get the number values of the column and row
  var col = e.range.getColumn();
  var row = e.range.getRow();

  //get the A1 notation of the editted cell for clearing it out
  var cell = e.range.getA1Notation();

  //only run if the cell is in a column in the allColumns array
  if(allColumns.indexOf(col) > -1) {

    //run the for loop for the next 8 cells
    for(var i = col + 1; i < col + 9; i++) {
      SpreadsheetApp.getActiveSheet().getRange(row, i).setValue(e.value);
      SpreadsheetApp.getActiveSheet().getRange(cell).setValue('');
    }
  }
}
函数onEdit(e){
//创建将受影响的列的数组
var-allColumns=[2,10];
//获取列和行的数值
var col=e.range.getColumn();
var row=e.range.getRow();
//获取编辑单元格的A1符号以清除它
var cell=e.range.getA1Notation();
//仅当单元格位于allColumns数组的列中时运行
if(所有列的索引(列)>-1){
//为接下来的8个单元格运行for循环
对于(变量i=col+1;i
对于第一组列非常有效。对于其他列集(天),我只是复制并粘贴了它,并在开始时对allColumns部分进行了简单的编辑。谢谢你的帮助。很好用!只需更改allColumns数组中的数字,使其与正在编辑的列一致。B列是2列,J列是10列,等等……啊,我在你的演示表中看到你刚刚复制了每个特定列的代码片段。您应该能够在不复制代码的情况下将所有列放入数组中。