Я полагаю, вы неправильно используете функцию получения диапазона.
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.