スクリプト、as documented hereとのデータ検証ルールを設定することができます。 starting with Apps scriptsの参照は次のとおりです。
私はあなたの説明どおりの機能を書いています。現在のスプレッドシートのシート「9th grade」の範囲B3:B157で動作します。それぞれに対して、妥当性検査ルールは、「List Data」シートの同じ行、B列およびC列の値に設定されます。
....... = listData.getRange(i+3, 2, 1, 2);
の行は、検証のソース範囲が異なる場合に変更する必要があります。ここで、パラメータは、開始行、開始列、行数、列数です。したがって、2列目は2列目から、行番号はi + 3になります。
function setRules() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var grade = ss.getSheetByName('9th Grade');
var listData = ss.getSheetByName('List Data');
var range = grade.getRange('B3:B157');
var rules = range.getDataValidations();
for (var i = 0; i < rules.length; i++) {
var sourceRange = listData.getRange(i+3, 2, 1, 2);
rules[i][0] = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange).build();
}
range.setDataValidations(rules);
}
私は "TypeError:null"のメソッド "getRange"を呼び出すことはできません(行8、ファイル "コード") "の行8を参照してください。 – Chris
メッセージは、シートポインタではなく、listDataがnullであることを示します。これは 'var listData = ss.getSheetByName( 'List Data');という行で取得されたもので、スプレッドシートに「List Data」という名前のシートがあるかどうかの疑問が生じます。 –