通过用户输入的单元格对工作表进行排序

时间:2019-03-11 18:46:18

标签: google-apps-script google-sheets

我想要一个执行以下步骤的脚本:

  1. 用户选择一个单元格,例如A5(列A为唯一ID列)
  2. 单击按钮/执行宏快捷方式,并出现提示询问位置的提示。例如:用户输入A2
  3. 将所选行移至输入位置
  4. 用新值重命名每列A值,对其重新排序,然后将行移动到Ex .: A5值变为A2值,并将A5行移至A2,A2值变为A3值并将A2行移至A3行,A3值变为A4值,A3行移至A4等。

这是我到目前为止所拥有的:

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
      .createMenu('Custom Menu')
      .addItem('Show prompt', 'showPrompt')
      .addToUi();
}

function showPrompt() {
  var ui = SpreadsheetApp.getUi(); // Same variations.
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var value = sheet.getActiveCell().getValue();
  var range = sheet.getActiveRange().getA1Notation();

  var result = ui.prompt(
      'Move row',
      'Wich position do you want:',
      ui.ButtonSet.OK_CANCEL);

  // Process the user's response.
  var button = result.getSelectedButton();
  var text = result.getResponseText();
  if (button == ui.Button.OK) {
    // User clicked "OK".
    var selectValue = sheet.getRange(text).getValue();
    var selectRange = sheet.getRange(text);
    ui.alert('range: ' + selectRange + '.');
    sheet.getRange(range).setValue(selectValue);
  } 
}

我处于第3步,我正在尝试使用moveTo()将选定的行移动到另一个位置,但是它将下面的每一行移动到选定的范围并将其移动。

sheet.getRange("A1:E").moveTo(sheet.getRange("F1"));

0 个答案:

没有答案