Google Sheets - запуск скрипта в приложении iOS листов - PullRequest
0 голосов
/ 20 февраля 2020

Я запускаю следующий скрипт как его собственный файл .gs

/** 
* TITLE:
*     Hide a row if a value is inputted. 
*/
//**GLOBALS**
// Sheet the data is on.
var SHEET = "Norm Adam";
// The value that will cause the row to hide. 
var VALUE = "Yes";
// The column we will be using 
var COLUMN_NUMBER = 11

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = ss.getActiveSheet();
  
  //Ensure on correct sheet.
  if(SHEET == activeSheet.getName()){
    var cell = ss.getActiveCell()
    var cellValue = cell.getValue();
    
    //Ensure we are looking at the correct column.
    if(cell.getColumn() == COLUMN_NUMBER){
      //If the cell matched the value we require,hide the row. 
      if(cellValue == VALUE){
        activeSheet.hideRow(cell);
      };
    };
  };
}

Он отлично работает в браузере компьютера, но на устройстве iOS он не работает через приложение Google листов, и я на самом деле даже не могу редактировать через сафари. Я читал, что только функция onEdit будет работать на мобильном устройстве, поэтому я подумал, что это должно работать. Есть ли еще одна часть этой головоломки? Спасибо, Майк

(кредит на создание скрипта идет: https://yagisanatode.com/2018/05/26/how-to-hide-a-row-based-on-a-cell-value-in-google-sheets-with-filter-or-google-apps-script/)

Скрипт V2 : я прокомментировал ниже, что это все еще не работает в iOS. Я подумал, что чем проще, тем больше шансов на работу?

function onEdit(e) {  
    if (e.range.getColumn() == 11 && e.value == 'Yes') {  
        e.range.getSheet().hideRows(e.range.getRow());
    }
}

1 Ответ

0 голосов
/ 20 февраля 2020

getActive звонков, особенно ss.getActiveCell() следует избегать в мобильных приложениях. Рассмотрим альтернативы, такие как e.range, чтобы получить отредактированный диапазон из объектов событий .

...