Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google脚本复制/粘贴/清除删除粘贴的单元格_Google Apps Script_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google apps script Google脚本复制/粘贴/清除删除粘贴的单元格

Google apps script Google脚本复制/粘贴/清除删除粘贴的单元格,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我正在Google Sheets中编写一个动作脚本,复制一个单元格,粘贴到另一个单元格中,然后,理想情况下,清除第一个单元格。我有复制粘贴功能,但当它在复制字段上运行清除时,它也会清除粘贴到的单元格 这是我的密码: var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Sheet1"); function copyAllInRange(){ var copyRange

我正在Google Sheets中编写一个动作脚本,复制一个单元格,粘贴到另一个单元格中,然后,理想情况下,清除第一个单元格。我有复制粘贴功能,但当它在复制字段上运行清除时,它也会清除粘贴到的单元格

这是我的密码:

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()
我想要的是:

  • 复制K3的内容
  • K2中的膏体含量
  • 清除K3
  • 在清除K3的同时,也在清除K2。

    问题:
    • 在代码中,
      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();
    }  
    

    这回答了你的问题吗@我想他只是从他的脚本编辑器中调用了
    copyAllInRange()
    。代码的其余部分未执行。@Marios测试并请参阅。将执行所有全局变量(函数将执行两次)。即使是OP公司也表示,它正在按预期进行清理。封装是好的,当然应该这样做,但这并不能解决OP的问题,因为这不是问题的原因。OP将其标记为工作状态:|@TheMaster这次我是对的:)@TheMaster我编辑完我的答案了。我想现在很清楚了。OP接受了“错误”的解释和糟糕的答案。我希望他再次阅读我的答案,以了解为什么会发生这种情况。