我正在Google表格中创建一个模板,用户可以在其中粘贴Excel中的数据。我有一个确保输入帐户有效的脚本。
该模板包含数据验证条件,如果数据输入依据数据验证规则无效,我希望我的脚本能够使用。该规则要求输入匹配数据在范围内。
仅供参考-我是新手。
我已经试过SpreadsheetApp.newDataValidation()中包含的子方法,但是我没有找到想要的东西。我尝试实现.setAllowInvalid(false)
方法以防止输入无效,但是,即使从范围内的数据验证规则未更改,也无法在将数据从Excel复制到范围时向用户发出警报。
当前,我让脚本使用比较的数据范围来检查每个单元格,但是花费的时间太长。数据验证规则中的某些数据范围具有超过5000个单元格,如果用户输入超过400行,则脚本可能需要10分钟以上的时间。
function setDataValidation(sheet, fRow, fCol, numRows, numColumns, account, valid) {
var data = sheet.getRange(fRow, fCol, numRows, numColumns);
var rule = SpreadsheetApp.newDataValidation()
.requireValueInRange(data, true)//(range, dropdown Boolean)
.setAllowInvalid(valid)
.build()
InputSht.getRange(
FirstDataRowI,
InputSht.createTextFinder(account).findNext().getColumn(),
LastRowI)
.setDataValidation(rule)
}
如果包含数据验证规则的范围内的输入无效,我希望脚本返回“无效”。
类似的东西:
function fillData() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var lastRow = ss.getLastRow()
for (i = 0; i < lastRow; i++) {
aData[i] = isValid(sheet.getRange(i+1, 1))
}
for(i=0;i<aData.length;i++) {
if (aData[i] == false) {
//here I'll place my code to determine my final output
}
}
}
function isValid(valid) {
var valid = true
//code that sets valid to false if invalid
return valid
}
显然我不知道我在说什么,但希望有人对此有所了解。
有什么想法吗?