【发布时间】:2019-06-19 22:38:17
【问题描述】:
我创建了两个单独的脚本来在同一张工作表上执行两个单独的操作,它们应该独立运行,但我似乎无法弄清楚如何将它们链接到同一个电子表格,因为只有一个出现在宏列表中。
我尝试通过工作表中的脚本编辑器链接创建这两个脚本,并且都出现在开发者中心,但我似乎无法在宏下拉选择中同时显示这两个脚本。
这是一个将源工作表的内容复制到目标工作表的脚本,它是作为该脚本的一部分创建的,并且它自己可以正常工作。
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});
};
我希望这两个脚本都可以在宏下拉列表中使用,以便我可以独立运行它们,但只显示一个。
【问题讨论】:
-
保存包含这两个函数的脚本后,您是否点击了宏下拉菜单中的
import?我将你的两个函数复制到一个脚本中并导入了它们,它们出现在我的下拉列表中。 -
你是如何创建这两个脚本的?脚本是附加到工作表的同一项目的一部分吗?
-
导入按钮是灰色的,也许是因为它们的保存方式? joxi.net/12MvVjacl1gwVA
-
@IMTheNachoMan 脚本应该在一个项目下还是单独的项目下?
标签: google-apps-script google-sheets google-sheets-macros