我创建了两个单独的脚本来在同一张纸上执行两个单独的动作,它们应该独立运行,但是我似乎无法弄清楚如何将它们链接到同一电子表格,因为宏列表中只有一个。
我试图通过工作表中的脚本编辑器链接来创建两个脚本,并且两个脚本都出现在开发人员中心中,但是我似乎无法在宏下拉菜单中同时显示这两个脚本。
这是一个脚本,用于将源工作表的内容复制到目标工作表,而目标工作表是作为此脚本的一部分创建的,因此可以单独运行。
var ss = SpreadsheetApp.getActive();
var sheetName = ss.getSheetByName("Results");
var CopyNew = function () {
var nm = ss.getSheetByName("NEW");
if(!nm){
var newSheet = ss.insertSheet("NEW");
var sourceRange = sheetName.getRange("A1:N100");
var targetRange = newSheet.getRange("A1:N100");
targetRange.setValues(sourceRange.getValues());
sourceRange.copyTo(targetRange, {formatOnly:true});
}
}
CopyNew();
这是一个单独的脚本,应在源工作表上的第一个脚本之后执行以清除某些列,并且再次可以单独运行。
function ClearCells() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('G9:G100').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true,
skipFilteredRows: true});
spreadsheet.getRange('K9:K100').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true,
skipFilteredRows: true});
spreadsheet.getRange('N9:N100').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true,
skipFilteredRows: true});
};
我想在宏下拉列表中同时使用这两个脚本,以便我可以独立运行它们,但仅显示其中一个。
答案 0 :(得分:1)
@ziganotschka谢谢您的答复,我已经通过您的答复弄清了这一点。这是脚本本身的问题。因为您提到我不是在导入脚本而是在导入函数,所以它让我看了看函数部分,它的编写方式使Google感到困惑!我是这样写的:
var CopyNew = function () {
但是我现在将其更改为以下内容,它解决了问题。
function CopyNew() {
谢谢大家,在您的帮助和建议下,现在一切正常。
答案 1 :(得分:0)