修改代码-将范围复制到另一个电子表格Google表格

汤姆·索金斯

下面的代码复制范围并移动到同一工作簿中的下一个电子表格,称为“需要充值”。

我希望将数据发送到另一个工作簿中的另一个电子表格。

 function onEdit(event) {
// assumes source data in sheet named PrepSheet
// target sheet of move to named TOP UP NEEDED
// getColumn with check-boxes is currently set to column I
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "PrepSheet" && r.getColumn() == 9 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("TOP UP NEEDED");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);

 }
 }

我尝试更换

var targetSheet = ss.getSheetByName("TOP UP NEEDED");

var targetSheet = SpreadsheetApp.openById("sheet ID").getSheetByName("TOP UP NEEDED");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);

但是没有用

谁能告诉我我哪里出错了

谢谢

Tanaike
  • 编辑单元格时,您要将值和格式从复制s.getRange(row, 1, 1, numColumns)TOP UP NEEDED的Spreadsheet中的工作表的最后一行sheet ID

如果我的理解是正确的,那么这个答案呢?请认为这只是几个可能的答案之一。

修改点:

不幸的是,在当前阶段,copyTo()Class范围不能用于其他电子表格。

模式1:

在这种模式下,copyTo()被使用。因此,值和单元格格式均被复制。

修改后的脚本:

修改脚本后,请进行以下修改。

从:
var targetSheet = ss.getSheetByName("TOP UP NEEDED");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
至:
var targetSS = SpreadsheetApp.openById("sheet ID");
s = SpreadsheetApp.getActiveSheet();
var tempSheet = s.copyTo(targetSS);
var targetSheet = targetSS.getSheetByName("TOP UP NEEDED");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
tempSheet.getRange(row, 1, 1, numColumns).copyTo(target);
targetSS.deleteSheet(tempSheet);

模式2:

在这种模式下,getValues()并被appendRow()使用。因此,仅复制值。

修改后的脚本:

修改脚本后,请进行以下修改。

从:
var targetSheet = ss.getSheetByName("TOP UP NEEDED");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
至:
var targetSheet = SpreadsheetApp.openById("sheet ID").getSheetByName("TOP UP NEEDED");
var sourceValues = s.getRange(row, 1, 1, numColumns).getValues()[0];
targetSheet.appendRow(sourceValues);

注意:重要

  • 在此修改中,onEdit()无法使用的简单触发器发生错误openById()因此,请使用OnEdit事件触发器的可安装触发器。在这种情况下,请如下修改功能名称。

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据透视表的总计单元格复制到Google电子表格中的另一个单元格

将可变数量的值复制到另一个电子表格

为什么我的应用程序脚本代码将电子表格的副本复制到除特定目录之外的Google Drive的根目录中?

使用Python使用Google API将电子表格复制到另一个电子表格

Excel VBA复制范围从另一个电子表格转置

触发范围复制到另一个电子表格的Google脚本-对我不起作用

将区域复制到另一个电子表格的下一个空行中

从一个电子表格复制/传输到另一代码

我可以根据单独电子表格中的信息修改一个电子表格文档(Google表格)吗

使用Google工作表脚本时,如何在不创建新工作表副本的情况下将电子表格的工作表复制到另一个电子表格中?

将列值从一个电子表格复制到另一电子表格,仅添加必要的行

从电子表格复制到具有动态标题的另一个电子表格

将过滤器数据从一个电子表格文件复制到另一个电子表格-Google Apps脚本

Google Apps脚本,使用格式将一个电子表格复制到另一电子表格

将工作表复制到另一个电子表格[Google Apps脚本]

将数据从.txt复制到电子表格的另一个文件中

从电子表格中修改另一个电子表格:Google Apps脚本

使用示例代码将电子邮件主题导入Google电子表格

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

Google Apps 脚本复制范围从一个电子表格到另一个具有格式/公式的电子表格

将列复制到另一个电子表格

Excel:将标题行从一个电子表格复制到另一个

复制到另一个电子表格后重命名工作表 - 删除“副本”?

将行从一个电子表格复制到另一个电子表格时如何阻止添加额外的行

如何将单元格从一个电子表格复制到另一个电子表格中的工作表?

将另一个电子表格中的彩色单元格复制到当前电子表格

将一个电子表格的内容复制到另一个

将未排序的 cel 复制到另一个电子表格中,从 col 到 row,现在卡在数组中

谷歌工作表(脚本)将工作表复制到另一个电子表格并在目标 SS 中命名新工作表