簡體   English   中英

用於根據條件將數據從一張紙復制到另一張紙的腳本

[英]Script to copy data from one sheet to another based on criteria

我有一個稱為主列表的Google電子表格。 它包含兩頁“響應”和“主響應”。 響應表包含大約3000行數據,“響應”表中的第一列稱為“已響應?”。 如果“已響應”,我想將行從“響應”表復制到“主響應”表。 列中具有值“被調用”,並且每次在“響應”表中進行新輸入時,都應將適當的數據行復制到“主響應”表中。 我當前正在使用以下代碼,但是這些行從“響應”表中移出並且未復制。 我想要一個腳本,其中的行被復制到“主響應”表中,並且也應保留在“響應”表中。 先感謝您。

function onEdit() 
{
var sheetNameToWatch = "Response";
var columnNumberToWatch = 1;
var valueToWatch = "Called";
var sheetNameToMoveTheRowTo = "Master Response";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == sheetNameToWatch && range.getColumn() == 
columnNumberToWatch && range.getValue() == valueToWatch)
{
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
sheet.getRange(2, 1, sheet.getLastRow(), 
sheet.getLastColumn()).moveTo(targetRange);
}
}

您需要使用copyTo而不是moveTo來將數據從一張紙復制到另一張紙。

sheet.getRange(2, 1, sheet.getLastRow(),sheet.getLastColumn()).copyTo(targetRange);

要將其復制到其他電子表格。

var ss = SpreadsheetApp.openById("<<SPREADSHEET ID>>").getSheetByName("Sheet1");
var newTargetRange = ss.getRange(ss.getLastRow() + 1, 1); 
sheet.getRange(2, 1, sheet.getLastRow(),sheet.getLastColumn()).copyTo(newTargetRange);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM