首页 > 解决方案 > 谷歌脚本复制/粘贴/清除删除粘贴的单元格

问题描述

我正在谷歌表格中编写一个动作脚本来复制一个单元格,将其粘贴到另一个单元格中,然后,理想情况下,清除第一个单元格。我有复制和粘贴功能,但是当它在复制的字段上运行 clear 时,它也在清除它被粘贴的单元格。

这是我的代码:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");

function copyAllInRange(){
  var copyRange = sheet.getRange("K3");
  var pasteRange = sheet.getRange("K2");
  
  copyRange.copyTo(pasteRange);
  copyRange.clear();
};

var run = copyAllInRange()

我要做的是:

  1. 复制K3的内容
  2. 将内容粘贴到 K2
  3. 清除 K3

发生的事情是在清除 K3 时,它也在清除 K2。

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-formula

解决方案


问题:

  • 在您的代码var run = copyAllInRange()中是一个全局变量。当它被声明时,它只是copyAllInRange()第一次执行该函数。

  • 然后,从脚本编辑器中,您也手动执行copyAllInRange(),因此执行两次。第二次执行此函数时,K3已被第一次执行清除,即您将单元格K3粘贴到K2,结果两者都被清除。


解决方案:

试试这个:

  function copyAllInRange(){
  
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Sheet1");
    var copyRange = sheet.getRange("K3");
    var pasteRange = sheet.getRange("K2");
  
    copyRange.copyTo(pasteRange);
    copyRange.clear();
}  

推荐阅读