还有一个如何将一行从一张纸复制到另一张?

时间:2012-11-16 05:16:18

标签: google-sheets google-spreadsheet-api

由于某种原因,此代码不执行复制。我做错了什么?

    var targetSheetName="My Target"
    var targetSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(targetSheetName);      
    var sourceRange = SpreadsheetApp.getActiveSheet().getDataRange();    
    sourceRange.copyTo(targetSheet.getRange(targetSheet.getMaxRows()+1, 1));

我也试过了 var sourceRange = SpreadsheetApp.getActiveSheet()。getDataRange()。getRow();分配数据,因为我不清楚getDataRange()获得了什么范围的数据,所以我想也许它正在获取整个活动工作表,因此当它尝试复制一行时可能会失败。底线是我尝试了各种各样的东西,似乎没有任何工作。

我在示例之后看了一些示例,并且所有这些示例都彼此如此不同我一直遇到试图将他们所拥有的内容转换为我需要的路障。以上是我最终确定并调整以供我使用,但我仍然卡住了。

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

要复制的1行 - 然后从源表中删除。大概   我想更多的是动作/追加。我想复制活动行

var ss = SpreadsheetApp.getActiveSpreadsheet();
var targetSheetName = "My Target";
var targetSheet = ss.getSheetByName(targetSheetName);
var sourceSheet = ss.getActiveSheet();      
var sourceRow = sourceSheet.getActiveRange().getRow();
var targetRow = targetSheet.getLastRow() + 1;
if (targetRow > targetSheet.getMaxRows()) targetSheet.insertRowAfter(targetRow - 1);
sourceSheet.getRange(sourceRow, 1, 1, sourceSheet.getLastColumn()).copyTo(targetSheet.getRange(targetRow, 1));   
sourceSheet.deleteRow(sourceRow);