我们正在尝试添加&#34; 0&#34;清空Google Spreadsheets中的单元格。 到目前为止我们提出的是以下代码,但是它将表单中的<0> 所有单元格设置为0。我们希望它只设置在 B:Q 的单元格上。
我们尝试更改以下内容,但结果相同:
function zeroDatarange() {
var range = SpreadsheetApp.getActiveSheet().getDataRange();
zero(range, null);
}
function zero(source, type) {
var data, range;
if(type === 'sheet') {
var lastRow = source.getMaxRows();
var lastColumn = source.getMaxColumns();
range = source.getRange(1, 1, lastRow, lastColumn);
} else {
range = source;
}
data = range.getValues();
for(var i = 0, iLen = data.length; i < iLen; i++) {
for(var j = 0, jLen = data[0].length; j < jLen; j++) {
if(!data[i][j]) {
data[i][j] = 0;
}
}
}
range.setValues(data);
}
我们使用的完整代码snipet如下所示:
{{1}}
答案 0 :(得分:1)
您正在使用包含A列的整个数据范围的参数调用zero()
然后你检查type == 'sheet'
是否
您正在传递null
,因此您粘贴的range
设置为source
(包括A列的完整数据范围)。
不确定您对zero()
功能的其他用途,但您需要将range
中的zero()
设置为range = source.getRange(1, 1, lastRow, lastColumn);
。
您可以在else
子句中执行此操作,也可以将传递的参数从null
更改为'sheet'
,并将范围分配编辑为从第二列开始。
答案 1 :(得分:0)
这非常好用,编辑B2:Q200。感谢Robin Gertenbach的帮助。
function zeroSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
zero(sheet, 'sheet');
}
function zero(source, type) {
var data, range;
if(type === 'sheet') {
var lastRow = source.getMaxRows();
var lastColumn = source.getMaxColumns();
Logger.log(lastColumn);
range = source.getRange(2, 2, 200, 16);
} else {
range = source;
}
data = range.getValues();
for(var i = 0, iLen = data.length; i < iLen; i++) {
for(var j = 0, jLen = data[0].length; j < jLen; j++) {
if(!data[i][j]) {
data[i][j] = 0;
}
}
}
range.setValues(data);
}