Удалить ячейки в листах с помощью сценария, который запускается с другого листа. [скрипт листа google] - PullRequest
0 голосов
/ 27 февраля 2020

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

Теперь у меня есть основная электронная таблица, которая связан с несколькими другими электронными таблицами (и содержащимися в них листами) (диапазон импорта, запросы и т. д. c.).

Возможно ли удаление данных в определенных диапазонах с помощью сценария в pu sh из кнопка в подключенных электронных таблицах, посредством чего я хотел бы вызвать это из основной электронной таблицы?!

Данные, которые должны быть удалены из листов с использованием сценария, являются ручным вводом пользователем и, следовательно, не поступают из Основная таблица. Диапазоны / ячейки, которые должны быть удалены, различаются в листах 1.A и 1.B

Прикреплен график для лучшего понимания:

graph

Мой сценарий так далеко это:

    function onOpen() {

  SpreadsheetApp.getUi()

    .createMenu('Delete User Input Data')

    .addItem(

      'Delete Data now',

      'userActionResetMultipleSheetsByRangesAddresses'

    )

      .addToUi();

}

function userActionResetMultipleSheetsByRangesAddresses() {

  var sheetNames = [

    { name: 'Sheet1.A', rangesAddressesList: ['Y3:AG99'] },

    { name: 'Sheet1.B', rangesAddressesList: ['AI3:AX99'] },

    ];

  sheetNames.forEach(function(sn) {

    var sheet = SpreadsheetApp.getActive().getSheetByName(sn.name);

    if (sheet) {

      resetByRangesList_(sheet, sn.rangesAddressesList);

    }

  });

}

function resetByRangesList_(sheet, rangesAddressesList) {

  sheet.getRangeList(rangesAddressesList).clearContent();

}

1 Ответ

1 голос
/ 28 февраля 2020

Я думаю, вы могли бы использовать что-то вроде этого:

function userActionResetMultipleSheetsByRangesAddresses() {
  var ss=[{id:'',name:'Sheet1.A', rangesAddressesList: ['Y3:AG99'] },{id:'',name:'Sheet1.B',rangesAddressesList: ['AI3:AX99'] },
          {id:'',name:'Sheet2.A', rangesAddressesList: ['Y3:AG99'] },{id:'',name:'Sheet2.B',rangesAddressesList: ['AI3:AX99'] },
          {id:'',name:'Sheet3.A', rangesAddressesList: ['Y3:AG99'] },{id:'',name:'Sheet3.B',rangesAddressesList: ['AI3:AX99'] }
         ];
  ss.forEach(function(e) {
    var sheet = SpreadsheetApp.openById(e.id).getSheetByName(e.name);
    if(sheet){
      sheet.getRangeList(e.rangesAddressesList).clearContent();
    }
  });
}

Вам просто нужно добавить идентификаторы электронных таблиц и исправить остальные имена и диапазоны листов.

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