Google Script Editor - Очистка ячеек (кроме тех, которые с формулами) - PullRequest
0 голосов
/ 03 мая 2020

Я новичок в этом. Мне нужна помощь в очистке ячеек электронной таблицы Google.

Однако я хочу очистить только те ячейки, которые содержат только цифры. Другими словами, ячейки со строками и формулами останутся не очищенными после запуска макроса. Так что мне не нужно снова вводить эти формулы в ячейки после очистки всего листа.

Может кто-нибудь помочь мне с этим?

Я пробовал это: но он очищает весь контент, который не тот, что я хочу.

function myFunction() {
  var sheet = SpreadsheetApp.getActive();
  sheet.getRange('A1:S1500').clearContent();
}

И причина, почему Я не хотел указывать те ячейки, для которых нет формулы, которую нужно очистить, - это то, что это не идеальный способ упрощения кода, поскольку мне нужно будет go и перечислить все ячейки без формул, чтобы очистить их. Кроме того, в случае каких-либо изменений в ячейках с формулами (например, A10 (с формулой) теперь становится вместо A11), мне нужно go в редакторе сценариев и снова отредактировать ссылки на ячейки, изменив его, чтобы очистить ячейку A10 вместо ячейки A11.

Следовательно, я думаю, есть ли способ обойти это вместо этого?

Спасибо.

1 Ответ

1 голос
/ 03 мая 2020

Попробуйте:

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('');
      }
    });
  }); 
}

isNan ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...