Google表格脚本无法正常工作? (用于更改其他选项卡中的值的数组)

时间:2019-08-15 06:39:43

标签: javascript google-apps-script

我似乎无法在Google工作表中使用这段代码,任何指针将不胜感激:)

如果我在“设置”工作表上并在F9:F19范围内更改值,那么我需要保存F9:F19的值(在“结果”数组中),在“数组”中打开相应的工作表“ SheetsList”,并将F9:F19中的相应值粘贴到单元格C34。

即“设置F9”->“ 1s C34”,“设置F10”->“ 2s C34”,“设置F11”->“ 3s C34” ...等等

function rsltButton() {

  var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();  

  var dataSheet = SpreadsheetApp.getActive().getSheetByName("SETTINGS");

  var Results = dataSheet.getRange(9, 6, 11).getValues();

  var rslt = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(34, 3).getValue();

  var SheetsList = ['1s','2s','3s','4s','5s','PG','GS','W2s','W3s','BS','U15s'];

  if (activeSheet === "SETTINGS"){

    for (i=0; i<11; i++){

      SpreadsheetApp.getActive().getSheetByName(SheetsList[i]).getRange(34, 3).setValue(Results[i]);

    }
  }
}

但是上面的脚本不会对“ SheetList”数组中的Sheets造成任何更改。

1 个答案:

答案 0 :(得分:0)

我们需要在for中包含var statement才能使用i迭代器。最终代码应类似于以下内容:

function rsltButton() {
  var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
    .getName();
  var dataSheet = SpreadsheetApp.getActive().getSheetByName("SETTINGS");
  var Results = dataSheet.getRange(9, 6, 11).getValues();
  var rslt = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(34,
    3).getValue();
  var SheetsList = ['1s', '2s', '3s', '4s', '5s', 'PG', 'GS', 'W2s', 'W3s',
    'BS', 'U15s'
  ];
  if (activeSheet === "SETTINGS") {
    for (var i = 0; i < 11; i++) {
      SpreadsheetApp.getActive().getSheetByName(SheetsList[i]).getRange(34, 3)
        .setValue(Results[i]);
    }
  }
}

我希望这对您有用。请不要犹豫,向我们提供更多信息以寻求进一步的帮助。