Вычислитель.Скрипт для настройки функции суммы - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть рабочая таблица, которая содержит примерно 90 листов.

  1. На первом листе приведена таблица рабочих часов.
  2. На втором листе есть функция суммы, которая отображает результат на первом листе (он просто суммирует часы).

    Мне нужно добавить функцию суммы только для парыячеек в остальной части 90 листов.Это функция, все ячейки всегда одинаковы только на разных листах.

    =SUMA(Sheet2'!B11;'Sheet2'!G11;'Sheet2'!L11;'Sheet2'!Q11;'Sheet2'!V11;'Sheet2'!AA11;'Sheet2'!AF11)

Могу ли я "перетащить" маленький +, когда я выбираю таблицу, чтобы оставить ячейки такими же, но сменить лист на следующий?Выполнение этого вручную заняло бы вечность.

1 Ответ

0 голосов
/ 22 сентября 2019

Следующий лист того же диапазона

function nextSheetSameRange() {
  var ss=SpreadsheetApp.getActive();
  var ash=ss.getActiveSheet();
  var arg=ash.getActiveRange();
  var argA1=arg.getA1Notation();
  var shts=ss.getSheets();
  for(var i=0;i<shts.length;i++) {
    if(ash.getName()==shts[i].getName()) {
      var currentIdx=i;
      break;
    }
  }
  if(currentIdx<shts.length-1) {
    nextSh=shts[currentIdx+1];
  }else{
    nextSh=shts[0];
  }
  var nsh=ss.setActiveSheet(nextSh);
  SpreadsheetApp.flush();
  var nrg=nsh.getRange(argA1);
  nsh.setActiveRange(nrg);
}

function makeSidebar() {
  var ss=SpreadsheetApp.getActive();
  var html='<input type="button" value="next" onClick="google.script.run.nextSheetSameRange()" />';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showSidebar(userInterface);
}

Инструкции

  1. Запустите makeSidebar.Это создаст боковую панель с кнопкой, помеченной следующим.Вы должны сделать это только один раз.Мне нравится использовать боковую панель, поскольку она занимает всего один клик, и мне не нужно возиться с выпадающими меню.

  2. Нажмите кнопку, и онапереместит один лист вправо и выберет тот же диапазон, что и текущий активный диапазон.Когда он дойдет до конца, он снова обернется к началу с тем же выбранным диапазоном.

Если у вас уже есть боковая панель, добавьте этот html в строку createHtmlOutput '<input type="button" value="next" onClick="google.script.run.nextSheetSameRange()" />'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...