首页 > 解决方案 > 如何在不过滤的情况下将包含数据的行始终保留在电子表格的顶部

问题描述

我正在做一个项目,需要一些帮助。我想知道是否有一种方法可以在删除 A2 中的数据后让 A3 自动移动到 A2?例如,如果A3、A5、A6中有数据,但A1、A4为空,则A3、A5、A6中的信息向上移动。我的另一个问题是我可以根据时间戳对数据进行排序,以便最旧的数据排在第一位吗?我基本上总是希望前 10 列中的数据,因此滚动较少。任何帮助是极大的赞赏!

在此处输入图像描述

在此处输入图像描述

标签: sortinggoogle-apps-scriptgoogle-sheetsscriptingtimestamp

解决方案


此脚本将解决您的两个问题:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");           // SHEET NAME
var range = sheet.getRange("A2:I");                // RANGE TO BE SORTED

function onEdit(e)  {
  range.sort([{column: 8, ascending: false}]);     // 8th COLUMN = H COLUMN
}

更新:

function onEdit(e){
 script1(e);
 script2(e);
 }

function script1(e){
 var row = e.range.getRow();
 var col = e.range.getColumn();
  if(col === 1 && row > 1 && e.source.getActiveSheet().getName() === "Kanban"){
   e.source.getActiveSheet().getRange(row,8).setValue(new Date());
   }
  }

function script2(e){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("Kanban");          
 var range = sheet.getRange("A2:I");
  range.sort([{column: 8, ascending: false}]);   
 }

推荐阅读