Автоматическое скрытие / отображение строк Google Spreadsheet - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь создать скрипт электронной таблицы Google.

Когда значение ячейки меняется на указанное значение, я хочу, чтобы оно вызывало скрытие / отображение строк.

Вот мой сценарий:

function autoHide() {

  var ss = SpreadsheetApp.getActive()
  var sheet = SpreadsheetApp.getActiveSheet()
  var cell = ss.getActiveCell()
  var cell1 = ("C12");

  if (cell1 == "Others" ) {
    ss.getActiveSheet().showRows(14, 3);
  }

  else if (cell1 == "Additional Discount/s (over and above 25%)" ) {
    ss.getActiveSheet().showRows(17, 4);
  }

  else {
    ss.getActiveSheet().hideRows(14, 7)
  }
}

Image of sheet

1 Ответ

0 голосов
/ 22 января 2019

Ваш вопрос немного неясен относительно некоторых моментов, поэтому я предположил, что вы хотите отслеживать значение ячейки C12 при редактировании C12 .

function autoHide() {

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var cell = ss.getActiveCell();
  var value = cell.getValue();

  var cellRef = cell.getA1Notation();

  if (cellRef !== "C12") return;
  // This isn't the cell we are looking for, stop executing the function.

  if (value === "Others" ) {

    sheet.showRows(14, 3);

  } else if (value === "Additional Discount/s (over and above 25%)" ) {

    sheet.showRows(17, 4);

  } else {
    sheet.hideRows(14, 7);
  }
}

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

Полезно, если C12 является формулой и не обновляется вручную.

function autoHide() {

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();

  var cellRef = "C12";
  var cell = sheet.getRange(cellRef);
  var value = cell.getValue();

  if (value === "Others" ) {

    sheet.showRows(14, 3);

  } else if (value === "Additional Discount/s (over and above 25%)" ) {

    sheet.showRows(17, 4);

  } else {
    sheet.hideRows(14, 7);
  }
}
...