Google表格 - 将单元格剪切并粘贴到另一个单元格(位于另一个工作表上)

时间:2018-06-15 19:25:39

标签: google-apps-script google-sheets

我在Google表格上需要帮助。 我想填写我的"数据"的B列。通过填充"接口"片。我创建了一个脚本,但它需要一个while循环才能写入空单元格。 (我的目标是为客户创建一个等待名单)

当在工作表上进行任何更改时,我的功能将触发。 (我对表格做了一些限制,只让人们触摸4平方(正在开发中)

function Bouton1() {

  //the current sheet
  var spreadsheet = SpreadsheetApp.getActive();

  //focus on B5
  spreadsheet.getRange('B5').activate();

  //go on Data
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Data'), true);
  //focus on B2
  spreadsheet.getRange('B2').activate();

  //copy
  spreadsheet.getRange('Interface!B5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

  //go on interface
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Interface'), true);

  //clean B5 
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
};

这是我的GSheet

https://drive.google.com/open?id=1qksTPQTyUZCxxRFuQv9BP5UPtmNvyre4_MJKhrKM8ys

1 个答案:

答案 0 :(得分:0)

如果您只想记录在任何地方输入的内容(在这4个单元格中),您不需要循环

function onEdit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var newRow = Math.max(sheet.getLastRow() + 1, 2);
  sheet.getRange(newRow, 2).setValue(e.value);
  e.range.copyFormatToRange(sheet, 2, 2, newRow, newRow);
  e.range.clear({contentsOnly: true});
}