2017-02-06 1 views
0

グッドアフタヌーンに基づいて複数のシートを非表示にします"、"週3 "...週9まで)、セル(コントロールパネルのシートのj10)に基づいて1つだけを表示します。 j10に "4"がある場合は、 "Week 4"だけが表示されます。は、私は、Googleのシート用のスクリプトにかなり新しいです(Excelの違いに慣れる)と、複数のシート(「週1」、「2週を非表示にしようとしています</p> <p>、セルの値

私は一度にこのシートを行う方法を参照してください。based on this old Stack Overflow question 9つの "if文"を使用し、それぞれの文は9つのコマンドで1つの "Week"シートを隠すようにします。基本的には、私は非常に遅くならないようにコードを大幅に簡素化しようとしています。

したがって、コマンドをループすることでhidesheet()メソッドが存在する前に書かれたthis postのスクリプトを使用しようとしましたが、問題が発生しています。

ありがとうございました!

答えて

0

「コントロールパネル」のシートを非表示にしたくないと思っていましたか?以下のスクリプトを試してください

function onEdit(e) { 
if (e.source.getActiveSheet() 
    .getName() == 'Control Panel' && e.range.getA1Notation() == 'J10' && e.value > 0 && e.value < 10) { 
    e.source.getSheets() 
     .forEach(function (sh) { 
      (sh.getName() !== 'Week ' + e.value && sh.getName() !== 'Control Panel') ? sh.hideSheet() : sh.showSheet(); 
     }) 
} 
} 

注:このスクリプトでは、簡単なonEditトリガーを使用しています。だから、スクリプトエディタから( '再生'ボタンをクリックすることによって)それを実行しようとしないでください。代わりに、シート「コントロールパネル」に行き、J10に値(> 0と< 9)を入力します。

+0

ありがとう、JPVの助けを借りて、完璧に動作します。 onEditはこのドキュメントに最適です。別のドキュメントがある場合は、タイムドトリガが必要ですが、これは似たようなコードでしょうか? "Control Panel"のJ10が= WeekDayまたは= Now関数を使用して計算され、その後毎週J10が正しいタブを開く必要があるかどうかをチェックする場合に使用したいと思います。 –

+0

@AaronSmith:それが動作する場合は、私の答えを受け入れてください。 :-)クロックトリガーでスクリプトが必要な場合、コードは少し異なります(イベントオブジェクトeがないため)。 getRange( 'j10')var value = cell.getValue()...。valueが希望の値であるかどうかをチェックし、それに基づいて動作します。それ... – JPV

関連する問題