Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Excel 移动到google电子表格中的顶部功能_Excel_Google Apps Script_Google Sheets - Fatal编程技术网

Excel 移动到google电子表格中的顶部功能

Excel 移动到google电子表格中的顶部功能,excel,google-apps-script,google-sheets,Excel,Google Apps Script,Google Sheets,该函数获取当前选定的单元格或区域,并将其移动到“列表”的顶部。在待办事项列表中非常有用。感谢Brian P的帮助 function arrayShift(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var activeRange = sheet.getActiveRange(); var toDoRange = sheet.getRange("A2:A9")

该函数获取当前选定的单元格或区域,并将其移动到“列表”的顶部。在待办事项列表中非常有用。感谢Brian P的帮助

function arrayShift(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var activeRange = sheet.getActiveRange();
  var toDoRange = sheet.getRange("A2:A9"); //the range of your todo list. 
  var howMany = activeRange.getNumRows();
  var topCell = activeRange.getRow();
  var rangeTop = toDoRange.getRow();
  var index = topCell - rangeTop; //gives the index of the selected cell
  var rangeArray = toDoRange.getValues();
  rangeArray.splice(index, howMany)

  if ( howMany == 1 ) {
    rangeArray.unshift(activeRange.getValues()[0]); 
  } else { // handle re-inserting multiple row values
    var values = activeRange.getValues();
    for ( var i = values.length - 1 ; i >= 0; i--) {
      rangeArray.unshift(values[i]);
    }
  }
  //Logger.log(rangeArray)
  toDoRange.clearContent();
  toDoRange.offset(0,0,rangeArray.length).setValues(rangeArray);
};
试试看

函数arrayShift(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var activeRange=sheet.getActiveRange();
var todogrange=sheet.getRange(“A2:A9”);//todo列表的范围。
var howMany=activeRange.getNumRows();
var topCell=activeRange.getRow();
var rangeTop=toDoRange.getRow();
var index=topCell-rangeTop;//给出所选单元格的索引
var rangeArray=toDoRange.getValues();
rangeArray.splice(索引,数量)
如果(数量==1){
rangeArray.unshift(activeRange.getValues()[0]);/“删除括号”
}else{//句柄重新插入多个行值
var values=activeRange.getValues();
对于(var i=values.length-1;i>=0;i--){
rangeArray.unshift(值[i]);
}
}
//Logger.log(rangeArray)
todogrange.clearContent();
偏移量(0,0,rangeArray.length).setValue(rangeArray);
};

谢谢你,布莱恩!!它工作得很好!我上一次发帖时得到的印象是,我应该在原始问题中添加固定代码。这看起来很奇怪,好像我在拿信用卡?另外,有没有提到stackoverflow?对不起,新手!下次您可以留下原始问题/代码。仅更新澄清。将问题标记为已回答/向上投票确实显示了您所怀疑的使用方法。哎呀!对不起,布莱恩,我不知道以前的代码是什么了。没有不尊重的意思。下次我会这样做的。再次感谢你的帮助!!