google-apps-script - 在一张工作表上遇到多个 Google Apps 脚本问题
问题描述
我创建了两个单独的脚本来在同一张工作表上执行两个单独的操作,它们应该独立运行,但我似乎无法弄清楚如何将它们链接到同一个电子表格,因为只有一个出现在宏列表中。
我试图通过工作表中的脚本编辑器链接创建这两个脚本,并且都出现在开发人员中心,但我似乎无法同时显示在宏下拉选择中。
这是一个将源工作表的内容复制到目标工作表的脚本,该脚本是作为该脚本的一部分创建的,并且它自己可以正常工作。
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});
};
我希望这两个脚本都可以在宏下拉列表中使用,这样我就可以独立运行它们,但只显示一个。
解决方案
@ziganotschka 感谢您的回复,我通过您的回复了解了这一点。这是脚本本身的问题。因为你提到我导入的不是脚本而是一个函数,这让我看到了函数部分,我猜它的编写方式让谷歌感到困惑!我是这样写的:
var CopyNew = function () {
但是我现在将其更改为下面的内容,它解决了问题。
function CopyNew() {
谢谢大家的帮助和建议,现在一切正常。
推荐阅读
- javascript - this.state.annonces.map 不是函数
- java - 如何使用 Java Spring/React 下载 XLSX 文件?
- c# - 如何将对象添加到视图列表并将修改后的列表发布回控制器?(带有 mvc 的 ASP .NET 核心)
- c# - 映射时无法解析类型的服务
- web-scraping - 无论如何要抓取特定信息
- angular - Angular - 表单生成器 - 表单控件无效不更新/ngIf错误
- macos - 写入输出文件时出错 - 写入(28:设备上没有剩余空间)
- python - Python 中 (boolean list) 和 (another boolean list) 的奇怪行为
- python - |as_crispy_field 传递了一个无效或不存在的字段
- django - 如何将所有大写的 Django Admin 内联名称更改为正确的标题大小写?