Я довольно новичок в скрипте Google, но я хотел написать несколько скриптов, чтобы улучшить мой опыт работы с Google. Сценарий работал довольно хорошо - хотя и довольно медленно - до тех пор, пока электронная таблица не стала заполнена формулами и вкладками, и с тех пор функции onEdit перестали выполняться через 35 секунд, как правило, и, таким образом, не делали все столбцы отображения и скрытия. Я уверен, что есть гораздо лучший способ написания кода, который также работает быстрее. Чего я хочу добиться, так это того, что на основе изменяющегося значения ячейки выпадающего меню определенный набор столбцов будет скрыт, а другие видимы. Что зависит от выбора выпадающей ячейки.
Будем благодарны за любые подсказки по улучшению кода и его ускорению.
Заранее спасибо
var VCO = [1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1];
var VW1=[0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,1,1];
var VW2=[0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW3=[0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW4=[0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VP1=[0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VA1=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW5=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW6=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW7=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW8=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VP2=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VA2=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VW9=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var V10=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var V11=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var V12=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VP3=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1];
var VA3=[0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1];
function onEdit(e) {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
if (e.range.getA1Notation() === "BX2") {
var vl=sh.getRange("BX2").getValue();
var j=11;
switch(vl)
{
case "COMM":
for(var i=0;i<67;i++){
if(VCO[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W1":
for(var i=0;i<67;i++){
if(VW1[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W2":
for(var i=0;i<67;i++){
if(VW2[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W3":
for(var i=0;i<67;i++){
if(VW3[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W4":
for(var i=0;i<67;i++){
if(VW4[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "PRE JAN":
for(var i=0;i<67;i++){
if(VP1[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "ACT JAN":
for(var i=0;i<67;i++){
if(VA1[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W5":
for(var i=0;i<67;i++){
if(VW5[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W6":
for(var i=0;i<67;i++){
if(VW6[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W7":
for(var i=0;i<67;i++){
if(VW7[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W8":
for(var i=0;i<67;i++){
if(VW8[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "PRE FEB":
for(var i=0;i<67;i++){
if(VP2[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "ACT FEB":
for(var i=0;i<67;i++){
if(VA2[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W9":
for(var i=0;i<67;i++){
if(VW9[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W10":
for(var i=0;i<67;i++){
if(V10[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W11":
for(var i=0;i<67;i++){
if(V11[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "W12":
for(var i=0;i<67;i++){
if(V12[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "PRE MAR":
for(var i=0;i<67;i++){
if(VP3[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
case "ACT MAR":
for(var i=0;i<67;i++){
if(VA3[i]==1){
sh.showColumns(i+j);
}
else{
sh.hideColumns(i+j);
}
}
break;
}
}