2017-08-10 1 views
0

スプレッドシートの最初の列には、各セルに「はい」と「いいえ」というオプションを持つドロップダウンリストがあります。Googleスプレッドシート内の別のセルに基づいてセルを無効にして有効にする

「はい」を選択した場合は、同じ行の次の列にあるセルを有効にして、別のドロップダウンリストで「赤」と「青」を選択します。 「いいえ」を選択した場合、次のセルは無効のままにしておきます。

これまでのところ、カスタム式のデータ検証メニューをセルB3の=if(B2="Yes", "red", "blue")に設定しましたが、動作しません。

どうすればいいですか?

+0

ジェイソンJurotichからユーチ​​ューブのビデオのを確認し、ここで一つに[リンク](https://youtu.be/rW9T4XZy-7U)です。 – Cooper

答えて

0

次のようなのonEdit、スクリプトでこれを行うことができます:ここで

function onEdit(e) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet() 
    var s=ss.getActiveSheet() 
    var col=e.range.getColumn() 
    var ro=e.range.getRow() 
    var nota=e.range.getA1Notation() 
    if(col==1){ 
    var val=e.range.getValue() 
    if(val=="No"){ 
    s.getRange(ro,2,1,1).setDataValidation(null) 
    } 
     else{ 
     s.getRange(ro,2,1,1).clearContent()  
     var cell = s.getRange(ro,2,1,1); 
     var rule = 
SpreadsheetApp.newDataValidation().requireValueInList(['Red', 'Blue']).build(); 
cell.setDataValidation(rule); 
     }}} 

は、共有の例です。コピーして試してみてください。

https://docs.google.com/spreadsheets/d/1wHA1Rz9U9dr4n8DntLvZWPe4izck7xgi3ygUpx-uNmo/edit?usp=sharing

+0

このスクリプトでこのエラーが発生します。TypeError:プロパティ "range"を未定義から読み取ることができません。 (行4、ファイル "コード") – user110327

+0

スクリプトエディタでスクリプトを承認する必要があるようです。承認されていない場合、イベント(e)は空白であり、スクリプトは失敗します。 –

関連する問題