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
我建議你檢查這[資料驗證(https://developers.google.com/apps-script/reference/spreadsheet/data-validation)和[DataValidationBuilder(https://developers.google .com/apps-script/reference/spreadsheet/data-validation-builder)來了解驗證如何在你的代碼中工作。它提供了一些示例代碼來了解如何使用它。對於有關下拉菜單的問題,請嘗試檢查這些問題[數據驗證使用應用程序腳本](http://stackoverflow.com/questions/17686068)和[在Google表格中依賴下拉菜單?](http://stackoverflow.com/questions/21744547)如果它可以幫助你。 – KENdi
感謝您的建議。雖然這個腳本似乎在我的測試表中工作,但在其他工作表中不起作用。數據valadation部分是正確的,但我認爲主要問題是這樣的:「.getRange(changedRange.getRow(),ColA + 2,changedRange.getColumn(),10);」我相信我需要使用不同的方法來設置源範圍。 – user2969867