首页 > 解决方案 > 在一张工作表上遇到多个 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});
};

我希望这两个脚本都可以在宏下拉列表中使用,这样我就可以独立运行它们,但只显示一个。

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-macros

解决方案


@ziganotschka 感谢您的回复,我通过您的回复了解了这一点。这是脚本本身的问题。因为你提到我导入的不是脚本而是一个函数,这让我看到了函数部分,我猜它的编写方式让谷歌感到困惑!我是这样写的:

var CopyNew = function () {  

但是我现在将其更改为下面的内容,它解决了问题。

function CopyNew() {  

谢谢大家的帮助和建议,现在一切正常。


推荐阅读