【发布时间】:2021-08-23 19:30:14
【问题描述】:
我承认我根本不是专业人士,我只是尝试为我的公司编写一些应用脚本,但遇到了一个我真的不明白的问题。
我无法执行我使用按钮或触发器创建的功能,而只能通过我自己使用应用脚本界面中的执行按钮来执行。
问题总是一样的:
错误目标范围的坐标超出了工作表的尺寸。
但正如我上面所说,当我自己执行时,我没有收到任何错误消息并且代码运行良好。
代码如下:
function Colle() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var lastRow = spreadsheet.getLastRow()+1;
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Data GC'), true);
spreadsheet.getRange('A1').activate
spreadsheet.getSheetByName("Data GC").getRange('A1:F500').activate(); // I know that my
//data will never exceed more than 400 so just as a security I've put 500
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sauvegarde GC'), true);
spreadsheet.getRange('A' + lastRow).activate();
spreadsheet.getSheetByName("Data GC").getRange('A1:F500').copyTo(spreadsheet.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
SuppDoubl(); //Delete the dupplicates
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sauvegarde GC'), true);
spreadsheet.getRange('A1').activate();
};
*对不起我的英语
function SuppDoubl() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A:F').activate();
spreadsheet.getActiveRange().removeDuplicates().activate();
spreadsheet.getRange('A1').activate();
};
【问题讨论】:
-
你能显示函数
SuppDoubl()吗?错误究竟出现在哪里?你能告诉行号吗? -
您好,感谢您的回答,SuppDoubl 的脚本是基于 app 脚本中的 removeDupplicates 函数:function SuppDoubl() { var spreadsheet = SpreadsheetApp.getActive();电子表格.getRange('A:F').activate();电子表格.getActiveRange().removeDuplicates().activate();电子表格.getRange('A1').activate(); };
-
这似乎有很多代码,可能可以简化很多(或以不同的方式制作)。这样做也应该可以解决问题。你能解释一下你追求的结果吗?脚本应该做什么?
-
我已经通过简化代码解决了这个问题,感谢您的关注。该脚本正在将数据从工作表复制到另一个工作表并取最后一行,以免删除以前的数据。它旨在保存我的数据。
标签: google-apps-script google-sheets execution