简体   繁体   English

仅将活动行从一个电子表格复制到另一个电子表格

[英]Copy only active row from one spreadsheet to another

I want to create a script to copy the active row of a sheet(TIME MACHINE) to another Google spreadsheet's sheet(Database). 我想创建一个脚本,将工作表(TIME MACHINE)的活动行复制到另一个Google电子表格的工作表(数据库)。 I also want to send "1" to the 13 row of the copied row. 我也想向复制的行的13行发送“ 1”。 It would be great if anyone can guide me. 如果有人可以指导我,那就太好了。 The code given below only works to copy within the same spreadsheet. 下面给出的代码仅可在同一电子表格中进行复制。

function endTime() {

transfer("1E3CWWohirN4DD_f_23WWBElYrhqnAs_27crrxowFjFA", "TIME MACHINE", "TIME MACHINE2")

}

function transfer(targetId, sourceSheetName, targetSheetName) {

var d = new Date();
var offset = -d.getTimezoneOffset()/60;
var h = d.getHours();
var h = h >= 13? h - 12: h;
h = h == 0? 12: h;
var m = m < 10? "0" + d.getMinutes(): d.getMinutes();
var s = d.getSeconds();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName(sourceSheetName);
var last = sourceSheet.getActiveRange().getRow();
var data = sourceSheet.getRange(last, 1, 1, 14).getValues();
var time1 = h + ":" + m + ":" + s;

sourceSheet.getRange(last, 28).setValue(time1);


var tamma = sourceSheet.getRange(last, 11).getValue();

// copy data
var ss2 = SpreadsheetApp.openById(targetId);
var targetSheet = ss2.getSheetByName(targetSheetName);
//get last row
var lastRow = targetSheet.getLastRow();
//write data
targetSheet.getRange(lastRow + 1, 1, data.length, data[0].length).setValues(data);
//write "1" into column 13
targetSheet.getRange(lastRow + 1, 13, data.length, 1).setValue("1");
targetSheet.getRange(lastRow + 1, 11, data.length, 1).setValue(tamma);
}

your code just needs a little reorganization and you need to get the right data from the source-sheet. 您的代码只需要进行一些重组,就需要从源工作表中获取正确的数据。

this should work: 这应该工作:

function main() {

transfer("1mEluY-_K9oBvbxzASKn25YZ8BgF_naLl0XNitb4zIA8", "Sheet1", "Sheet1");

}
function transfer(targetId, sourceSheetName, targetSheetName) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName(sourceSheetName);
  var last = sourceSheet.getActiveRange().getRow();
  var data = sourceSheet.getRange(last, 1, 1, 14).getValues();

  // copy data
  var ss2 = SpreadsheetApp.openById(targetId);
  var targetSheet = ss2.getSheetByName(targetSheetName);
  //get last row
  var lastRow = targetSheet.getLastRow();
  //write data
  targetSheet.getRange(lastRow + 1, 1, data.length, data[0].length)
           .setValues(data);
  //write "1" into column 13
  targetSheet.getRange(lastRow + 1, 13, data.length, 1)
           .setValue("1")

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将一行从一个Google表格电子表格复制到表单提交中的另一表格 - Copy a row from one Google Sheet Spreadsheet to Another on Form Submit 应用程序脚本 - 将一行数据从一个谷歌电子表格复制(仅值)到另一个(基于复选框)并将其从原始电子表格中删除 - App Scripts - Copy (values only) a row of data from one google spreadsheet to another (based on checked box) and deleting it from the original one 如何使用谷歌应用脚本将一行从一个谷歌电子表格复制到另一个谷歌电子表格? - How to copy a row from one google spreadsheet to another google spreadsheet using google apps script? 将活动行从一个工作表复制到另一个Google工作表 - copy active row From one sheet to another google sheets 将列值从一个电子表格复制到另一个电子表格,仅添加必要的行 - Copy column values from one spreadsheet to another spreadsheet, adding only the necessary rows 从工作表中删除一行并复制到另一个电子表格 - Remove a row from a sheet and copy to another spreadsheet 将范围从一个电子表格复制到另一个 - Copy a range from one spreadsheet to another 在编辑时将数据从一个电子表格复制到另一个电子表格 - Copy data from one spreadsheet to another on edit 将多个工作表从一个电子表格复制到另一个电子表格 - Copy several sheets from one spreadsheet to another spreadsheet 将动态范围从一个电子表格复制到另一个使用getfileid调用的电子表格 - copy dynamic range from one spreadsheet to another spreadsheet called with getfileid
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM