Google apps script Google脚本编辑器-清除单元格(带有公式的单元格除外)

Google apps script Google脚本编辑器-清除单元格(带有公式的单元格除外),google-apps-script,google-sheets,google-apps-script-editor,Google Apps Script,Google Sheets,Google Apps Script Editor,我是新来的。我需要帮助清除谷歌电子表格的单元格 但是,我要清除的单元格仅包含数字。换句话说,在运行宏后,带有字符串和公式的单元格将保持未清除状态。这样我就不需要在清除整个工作表后再次将这些公式输入到单元格中 有人能帮我吗 我试过这样做:但它清除了所有不是我想要的内容 function myFunction() { var sheet = SpreadsheetApp.getActive(); sheet.getRange('A1:S1500').clearContent(); } 我不

我是新来的。我需要帮助清除谷歌电子表格的单元格

但是,我要清除的单元格仅包含数字。换句话说,在运行宏后,带有字符串和公式的单元格将保持未清除状态。这样我就不需要在清除整个工作表后再次将这些公式输入到单元格中

有人能帮我吗

我试过这样做:但它清除了所有不是我想要的内容

function myFunction() {
  var sheet = SpreadsheetApp.getActive();
  sheet.getRange('A1:S1500').clearContent();
}
我不想指定那些没有公式可清除的单元格的原因是,这不是简化代码的理想方法,因为我需要列出所有没有公式可清除的单元格。此外,如果带有公式的单元格发生任何更改(例如,A10(带有公式)现在变为A11),我需要进入脚本编辑器并再次编辑单元格引用,将其更改为清除单元格A10而不是单元格A11

因此,我在想,是否有办法解决这个问题

谢谢。

试试这个:

function myFunction() {
  var sheet = SpreadsheetApp.getActive();
  sheet.getRange('A1:S1500').clearContent();
  var fA=sheet.getRange('A1:S1500').getFormulas();
  var vA=sheet.getRange('A1:S1500').getValues();
  vA.forEach(function(r,i){
    r.forEach(function(c,j){
      //if no formula and a number
      if(!fA[i][j] && !isNaN(c)) {
        sheet.getRange(i+1,j+1).setValue('');
      }
    });
  }); 
}

使用getValues()获取一个数组,使用getFormulas()获取另一个数组,然后查找公式数组为null且值数组为数字的单元格