简体   繁体   English

从工作表 A 复制粘贴到工作表 B 的最后一行谷歌应用程序脚本

[英]Copy fro Sheet A to paste in Sheet B's last row google app script

I'm just trying to learn javascript and google apps script for 2-3 weeks.我只是想学习 javascript 和谷歌应用脚本 2-3 周。

I'm copying the whole range from 11 to 200 from Sheet A. Then I need to paste this copied data in Sheet B's last row.我正在从工作表 A 复制从 11 到 200 的整个范围。然后我需要将复制的数据粘贴到工作表 B 的最后一行。

I made a code here which has an error.我在这里做了一个有错误的代码。

   function CopyandPasteToB() {
  var app = SpreadsheetApp;
  var spreadsheet = SpreadsheetApp.getActive();
  var ss = app.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName('B')
  
  //copy data from origin sheet
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('A'), true);
  spreadsheet.getRange('11:100').activate();
  
  // Last non-empty row
  var rlast = mysheet.getLastRow();
  Logger.log("Last row = " + rlast);
 
  // Insert into last row in OP
  mysheet.insertRows(rlast+1);
  var r = rlast+1;
  spreadsheet.getRange('\'WP1\'!11:100').copyTo(mysheet.getLastRow() +1);
};

I get an error of Exception: The parameters (number) don't match the method signature for SpreadsheetApp.Range.copyTo.我收到异常错误:参数(数字)与 SpreadsheetApp.Range.copyTo 的方法签名不匹配。

Aside from the error that I got, do you think my code can be improved and am I in the right direction to achieve my goal?除了我得到的错误之外,您认为我的代码可以改进吗?我是否在正确的方向上实现我的目标?

SO I want to ask how do I go about this to work?所以我想问一下我 go 如何工作?

Thank you very much.非常感谢你。

  • The parameter provided to copyTo(range) should be a Range , not a number.提供给copyTo(range)的参数应该是一个Range ,而不是一个数字。 That's the reason for your issue.这就是你的问题的原因。
  • There's no need to activate Sheets and Ranges in order to work on them, so your code could be simplified.无需activate Sheets 和 Ranges 即可对其进行处理,因此您的代码可以得到简化。

Code snippet:代码片段:

function CopyandPasteToB() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName('B');
  var sourceSheet = ss.getSheetByName('A');
  var sourceRange = sourceSheet.getRange("11:100");
  var rlast = mysheet.getLastRow();
  if (rlast === mysheet.getMaxRows()) mysheet.insertRowsAfter(rlast, 1); // Avoid error if last row with content is last row of the sheet
  var destRange = mysheet.getRange(rlast + 1, 1);
  sourceRange.copyTo(destRange);
};

暂无
暂无

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

相关问题 如果值存在于工作表 1 和工作表 2 中,则复制行并将其粘贴到工作表 3。Google 表格。 Google Apps 脚本 - Copy row if value exists in both sheet 1 and sheet 2 and paste it to sheet 3. Google Sheets. Google Apps Script Google脚本:如何将范围复制并粘贴到不为空的行中的新表中 - Google Script: How to copy and paste range to a new sheet on a row that is not empty Google 工作表脚本 - 将行值复制到最后使用的行 - Google sheet script - copy row values to last used row 从工作表 A 复制行并将其附加到 Google 工作表的工作表 B 中 - Copy Row From Sheet A and append it in Sheet B in Google Sheet 将Google表格数据复制到最后一行下方的其他Google表格中 - Copy Google Sheet Data to other Google Sheet below the Last Row 谷歌脚本将数据从工作表 1 复制到第一个空行工作表 2 - google script copy data from sheet 1 to first empty row sheet 2 如何连续搜索昨天的日期,然后将值复制/粘贴到新的 Google 表格 - How to search for yesterday's date in a row, then copy / paste values to new Google Sheet Google App Script:格式化数据并粘贴到 Google 表格 - Google App Script: Format data and paste to google sheet 如何使用 Google 脚本从 1 个 Google 工作表中复制特定值并粘贴到另一个工作表? - How can I copy specific values from 1 Google Sheet and paste to another Sheet using Google Script? Google表格应用脚本时间戳记条件 - Google Sheet App Script Timestamp Condition(s)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM