Ale*_*lex 3 google-apps-script
我的最终目标是在这里,但是因为我没有得到任何答复,所以我开始从头开始学习(无论如何可能是最好的)。基本上,我想要一个脚本来识别错误并修复它们
嗯,第一部分是能够识别错误。有没有办法使用 Google Script 来识别单元格中是否有错误,并因此返回特定消息?或者我是否只需要做一个 if/else 说“如果单元格值为‘#N/A’,则执行此操作”,加上“如果单元格值为‘#ERROR’,则执行此操作”,继续出现各种错误?. 基本上我想要 ISERROR(),但在脚本中
使用辅助函数来抽象掉这些肮脏之处:
function isError_(cell) {
// Cell is a value, e.g. came from `range.getValue()` or is an element of an array from `range.getValues()`
const errorValues = ["#N/A", "#REF", .... ];
for (var i = 0; i < errorValues.length; ++i)
if (cell == errorValues[i])
return true;
return false;
}
function foo() {
const vals = SpreadsheetApp.getActive().getSheets()[0].getDataRange().getValues();
for (var row = 0; row < vals.length; ++row) {
for (var col = 0; col < vals[0].length; ++col) {
if (isError_(vals[row][col])) {
Logger.log("Array element (" + row + ", " + col + ") is an error value.");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用Array#indexOf的辅助函数:
function isError_(cell) {
// Cell is a value, e.g. came from `range.getValue()` or is an element of an array from `range.getValues()`
// Note: indexOf uses strict equality when comparing cell to elements of errorValues, so make sure everything's a primitive...
const errorValues = ["#N/A", "#REF", .... ];
return (errorValues.indexOf(cell) !== -1);
}
Run Code Online (Sandbox Code Playgroud)
如果/当 Google Apps Script 升级为Array#includes,那将是比 更好的选择Array#indexOf:
function isError_(cell) {
// cell is a value, e.g. came from `range.getValue()` or is an element of an array from `range.getValues()`
const errorValues = ["#N/A", "#REF", .... ];
return errorValues.includes(cell);
}
Run Code Online (Sandbox Code Playgroud)
现在 v8 运行时可用,可以对上述代码片段(箭头函数等)进行许多其他更改,但请注意,不需要以这种方式更改内容。
| 归档时间: |
|
| 查看次数: |
4207 次 |
| 最近记录: |