Скрыть столбец на основе значения столбца - PullRequest
0 голосов
/ 20 июня 2020

Я хотел бы скрыть столбцы со значением 0, скажем, в строке 5.

Я пробовал следующий код, но, похоже, он не работает.

function myFunction() {
 
}
function onEdit(){
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var lastColumn = sheet.getLastColumn();
 
  for(i=1 ; i<=lastColumn ; i++){
    var status = sheet.getRange(5+i).getValue(); //change "5" to desired column
    if (status == "0"){//change "0" to desired text
      sheet.hideColumns(i);//hide row if true
    }  
    else{
      sheet.showColumns(i);//unhide row if false
    }
  }
}

Это ошибка

Исключение: диапазон не найден в onEdit (Копия Best: 10: 24)

Есть предложения?

1 Ответ

1 голос
/ 20 июня 2020

Я полагаю, вы неправильно используете функцию получения диапазона.

getRange(a1Notation) -- As per doc this a1Notation is string like A1 , A2 ..

и вы передаете целое число. или если вы знаете, что столбец измените его на (A или B по мере необходимости)

getRange( 'A' + (5 + i))

Я думаю, вам нужно проверить другую реализацию getRange, которая соответствует вашим потребностям.

Пожалуйста, отметьте

https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangea1notation

[EDIT]

function onEdit(){
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var lastColumn = sheet.getLastColumn();
 
  for(i=1 ; i<=lastColumn ; i++){
    var status = sheet.getRange(5,i).getValues(); //.getValue(); //change "5" to desired column
    if (status == "0"){//change "0" to desired text
      sheet.hideColumns(i);//hide row if true
    }  
    else{
      sheet.showColumns(i);//unhide row if false
    }
  }
}

этот скрипт скроет весь столбец в строке 5 - имеет значения 0.

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