0
私が使用しています:データ検証スクリプト
function datavalidation(event) {
var ColA = 1;
var changedRange = event.source.getActiveRange();
if (changedRange.getColumn() == ColA) {
var destinationRange = event.source.getActiveSheet().getRange(changedRange.getRow(),ColA+1);
var sourceRange = event.source.getActiveSheet().getRange(changedRange.getRow(),ColA+2,changedRange.getColumn(),10);
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange).build();
var rules = destinationRange.getDataValidations();
for (var i = 0; i < rules.length; i++) {
for (var j = 0; j < rules[i].length; j++) {
rules[i][j] = rule;
}
}
destinationRange.setDataValidations(rules);
}
}
を1列が編集されたときに、列2のドロップダウンメニューを作成します。それは大部分はうまくいきますが、2列目のデータ検証を削除すると、予期せぬことが起こっています。これを実行すると、2行目の最初の行のスクリプトが実行されます列1を変更しないでください。ここで何が起こっているのかを理解しようとしています。おかげ
はここに公共のドキュメントを参照してください:ソース範囲を設定するためのhttps://docs.google.com/spreadsheets/d/1kYncT7bOYWp73yr3Lh4LQreTpRFc8lZL3siqpP4xsvA/edit?usp=sharing
私はあなたがこの[DataValidation](https://developers.google.com/apps-script/reference/spreadsheet/data-validation)をチェックすることをお勧めして[DataValidationBuilder](https://developers.google .com/apps-script/reference/spreadsheet/data-validation-builder)を使用して、検証がコード内でどのように機能するかを確認します。それはそれを使用する方法を知るためのいくつかのサンプルコードを提供します。ドロップダウンメニューに関する問題については、これらの質問[Appsスクリプトを使用したデータ検証](http://stackoverflow.com/questions/17686068)と[Googleシートの依存ドロップダウン?](http://stackoverflow.com)を確認してみてください。/questions/21744547)を参照してください。 – KENdi
あなたの提案をありがとう。このスクリプトはテストシートで動作しているようですが、他のシートでは機能しません。データvaladationの部分は正しいですが、私は主な問題はこれだと思います: ".getRange(changedRange.getRow()、ColA + 2、changedRange.getColumn()、10);"ソース範囲を設定するために別の方法を使用する必要があると私は信じています。 – user2969867