已创建Google电子表格代码,用于将一行数据复制并粘贴到同一电子表格中的目标工作表中。但是,当行被粘贴到目标工作表时,它会粘贴两次。我只需要将它粘贴到目标位置一次......不是两次。
请参阅表格:https://docs.google.com/spreadsheets/d/1dL9FkxPawP9kvqJ4SwfRLqcv9HAUjHhZCfG9wxOwlDY/edit?usp=sharing
脚本:
function onEdit(event)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var curDat = new Date();
var valSent = r.getValue().toString().toLowerCase();
if(s.getName().toString() == "Referrals 2015" && r.getColumn() == 15 && valSent == "sent" && valSent!="")
{
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Auths and F&D");
var target = targetSheet.getRange(targetSheet.getLastRow()+1, 1);
var target1 = targetSheet.getRange(targetSheet.getLastRow()+1, 3);
var target2 = targetSheet.getRange(targetSheet.getLastRow()+1, 4);
var target3 = targetSheet.getRange(targetSheet.getLastRow()+1, 5);
var tRow =targetSheet.getLastRow();
s.getRange(row,1,1,2).copyTo(target);
s.getRange(row,5,1, 1).copyTo(target1);
s.getRange(row,12,1, 1).copyTo(target2);
s.getRange(row,13,1, 2).copyTo(target3);
targetSheet.getRange(tRow+1, 7).setValue(curDat);
targetSheet.getRange("B" +targetSheet.getLastRow()+3+":Z"+targetSheet.getLastRow()+3).copyTo(targetSheet.getRange("B" + targetSheet.getLastRow()), {formatOnly: true});
targetSheet.getRange(tRow+1,1,1,7).setBackgroundColor("#ffff00");
r = null;
s = null;
valSent="1";
}
}
答案 0 :(得分:0)
onEdit()作为简单触发器自动运行。如果你在资源>这个项目触发的脚本触发器中设置它,你需要删除它,因为它将作为一个简单的触发器运行一次,并再次作为已安装的触发器运行。