【问题标题】:Having problems with Multiple Google Apps Scripts on one Sheet在一张工作表上遇到多个 Google Apps 脚本问题
【发布时间】: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


【解决方案1】:

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

var CopyNew = function () {  

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

function CopyNew() {  

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

【讨论】:

    【解决方案2】:

    当您尝试将脚本导入宏下拉部分时,实际上您导入的不是脚本本身,而是脚本中的函数。

    因此,如果您无法将两个脚本中的主函数导入下拉部分 - 很可能是因为两个脚本中的函数具有相同的名称 - myFunction()。您只需更改其中一个函数的名称即可。

    【讨论】:

      猜你喜欢
      • 2021-06-07
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      相关资源
      最近更新 更多