通话时按一列对特定谷歌表格进行排序

问题描述 投票:0回答:1

我有一个相当大的谷歌表格文件,其中包含 15 个以上的电子表格。 我需要一个脚本,让我可以通过调用功能/按钮对某些电子表格进行排序,例如按特定列:

电子表格“员工”和“团队”按第 2 列排序

(所有其他数据应像普通的谷歌过滤器排序一样排序)

我发现的所有脚本仅支持按活动电子表格排序

提前致谢

尝试询问chatgpt但没有成功,谷歌搜索/搜索SO

sorting google-sheets google-apps-script
1个回答
0
投票

所以这是您可以尝试的一个选择。 它只是一个基本脚本,它将根据提示中指定的列对活动工作表进行排序。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp, SlidesApp or FormApp.
  ui.createMenu('🔃')
      .addItem('Sort by Column', 'displayPrompt')
      .addToUi();
}

function displayPrompt() {
  var ui = SpreadsheetApp.getUi();
  var result = ui.prompt("Select column to sort by:");
  
  //Get the button that the user pressed.
  var button = result.getSelectedButton();
  var colResp = result.getResponseText();
  var colNum = Number(colResp);
  if (button === ui.Button.OK) {
    sortBy(colNum);
  } else if (button === ui.Button.CLOSE) {
    Logger.log("The user clicked the [X] button and closed the prompt dialog."); 
  }
    
}


function sortBy(colNum) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var rg=sheet.getRange(2,1,sheet.getLastRow()+1,sheet.getLastColumn()+1);
  rg.sort([{column:colNum,ascending:true}]);//The sort options is an array of objects but the array can be left for just one.
}

注意:没有进行任何验证。 如果用户在框中输入“是”,则会返回一条错误,内容如下:“参考超出范围”。 如果您愿意,可以将错误处理程序添加到脚本中。

您必须第一次授权该脚本。 请注意,当您授权该脚本时,该脚本将不会运行。 不过,此后每次都会运行。

© www.soinside.com 2019 - 2024. All rights reserved.