在多张纸上运行类似的应用程序脚本代码

问题描述 投票:0回答:1

最近刚刚开始使用App Scripts(这里是初学者程序员)。 我正在尝试自动创建列 + 将数据从 B 列转置到新创建的 C 列。

它工作正常,但是当我尝试在多张纸上复制脚本时,只有一个脚本有效。

下面是我的代码(我尝试复制常量来复制第一个脚本,但第一个脚本不再工作。我想我做错了):

// First script working fine.
const ss_1 = SpreadsheetApp.getActiveSpreadsheet();
  const sheet_1 = ss_1.getSheetByName('Marketing Report'); 

  function insertColumn() {
  const range_1 = sheet_1.getRange('B1:B300').getValues();
  const newrange_1 = sheet_1.getRange('C1:C300');
  const tmp_1 = new Date();
  const yesterday_1 = new Date(tmp_1.setDate(tmp_1.getDate()-1));
    
  sheet_1.insertColumnAfter(2);
  newrange_1.setValues(range_1);
  sheet_1.getRange('B2').setValue(yesterday_1).setNumberFormat("MMMM");
  }

// Second script, I tried to duplicate my constants to replicate the first script but then the first script does not work anymore. I guess I'm doing it the wrong way
const ss_2 = SpreadsheetApp.getActiveSpreadsheet();
  const sheet_2 = ss_2.getSheetByName('Sales Report'); 

  function insertColumn() {
  const range_2 = sheet_2.getRange('C1:C150').getValues();
  const newrange_2 = sheet_2.getRange('D1:D150');
  const tmp_2 = new Date();
  const yesterday_2 = new Date(tmp_2.setDate(tmp_2.getDate()-1)); 

  sheet_2.insertColumnAfter(3);
  newrange_2.setValues(range_2);
  sheet_2.getRange('C2').setValue(yesterday_2).setNumberFormat("MMMM");
  }

任何帮助将不胜感激!

javascript google-sheets google-apps-script
1个回答
3
投票

首先,尝试重命名脚本中的一个函数,因为它们具有相同的名称。不要忘记点击保存。请注意,Google Apps 脚本一次只能运行一个函数(不包括触发器)。您可以通过下拉菜单(在“调试”和“执行日志”按钮之间)切换函数,以更改为您想要运行的函数。确保两个函数具有不同的名称。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.