请考虑以下代码:它设置值然后在范围内设置函数,但是它会覆盖已设置的值.
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getRange("A1:B2");
var values = [["First","row"],["Second","row"]];
var formulas = [["=42",""],["","=77"]];
range.setValues(values);
range.setFormulas(formulas);
}
Run Code Online (Sandbox Code Playgroud)
为什么设置空公式会覆盖任何设定值,反之亦然?想知道是否有办法跳过设置单个数组元素.我试过'undefined'和'null没有运气.
必须获得需要值公式以防止覆盖数据的特定区域的范围,这给我正在编写的脚本增加了额外的层复杂性.
谢谢阅读!
我想保留那些没有应用公式的单元格的单元格数据。
代码片段解释了该功能。
此解决方案也覆盖值,setFormulas 不会跳过空数组元素,覆盖值
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var Formulas = range.getFormulas();
for (var i in Formulas) {
for (var j in Formulas[i]) {
if (Formulas[i][j] == "") //cells which dont have the formula
{
//dont apply any formula, but keep the existing cell data (as it is)
} else {
Formulas[i][j] = '=HYPERLINK("http://www.google.com","Google")'
}
}
}
range.setFormulas(Formulas);
Run Code Online (Sandbox Code Playgroud)