0

我正在尝试清除Clima!V1:V范围的值,但由于我没有指定范围的总大小,因此出现错误,解决此问题的最简单方法是什么?考虑到这一列的总行数会随着时间的变化而变化。

function ApagarHistoricoDoClima() {
  var ss = SpreadsheetApp.getActive();
  ss.getRange('Clima!V1:V').clear({contentsOnly: true, skipFilteredRows: true});
}
4

2 回答 2

1

我建议使用Sheet.getRange(row, column, numRows)电子表格库中的函数。所以,我会使用以下代码:

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('Clima');
const range = sheet.getRange(1, 22, sheet.getMaxRows());
range.clear({contentsOnly: true, skipFilteredRows: true});

getMaxRows此处记录的功能。

编辑:

根据问题发布者的要求,我制作了这个脚本的简化版本,对于编程经验较少的人来说更容易访问:

// USER: START EDITING HERE

const sheetName = 'Clima';
const column = 'V';
const startRow = 1;

// USER: DO NOT EDIT BELOW THIS LINE

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
const lastRow = sheet.getMaxRows();
const range = sheet.getRange(column + startRow + ':' + column + lastRow);
range.clear({contentsOnly: true, skipFilteredRows: true});

如代码所示,用户只需编辑这三个常量,就不用担心下面的事情了。如果您不想startRow成为可以修改的东西,则可以将其移至用户变量下方。我将留给您向最终用户解释如何修改这三个变量。

此外,根据此问题的第二个答案,您可以在脚本中使用getLastRow而不是。获取工作表中包含内容的最后一行,而获取整个工作表中的实际最后一行。getMaxRowsgetLastRowgetMaxRows

于 2021-07-13T14:54:52.870 回答
0
const range = sheet.getRange(1, 22, sheet.getLastRow());
于 2021-07-13T15:01:25.460 回答