Скрипт листов - Скопировать формат в выделение - PullRequest
0 голосов
/ 10 декабря 2018

Попытка скопировать формат известного диапазона в активный выбор ...

Может кто-нибудь указать, где я ошибаюсь?

function updateformats() {
  var ss = SpreadsheetApp.getActive();
  var source = ss.getSheetByName('DONOTUSE')
  ss.getActiveRange().clearFormat();
  var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();

  source.getRange('G37:K37').copyTo(ss.getRange(selection), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

};

Я ожидаю, что это должновозможно, просто не могу заставить его работать.

Заранее благодарим за помощь.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы были близки:

Попробуйте изменить последнюю строку из этой source.getRange('G37:K37').copyTo(ss.getRange(selection), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

на эту: source.getRange('G37:K37').copyTo(selection.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);


эта строка: var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection(); в порядке, так как класс Sheetимеет метод getSelection () или может быть var selection = SpreadsheetApp.getSelection(); или даже var selection = ss.getSelection();.Очевидно, что, где бы он ни был развернут, все они возвращают выбор пользователей для электронной таблицы.
0 голосов
/ 10 декабря 2018

Как насчет этой модификации?

Точки модификации:

  • getSelection() возвращает «Выбор».
    • Таким образом, ошибка возникает в ss.getRange(selection).
  • В вашем скрипте вместо SpreadsheetApp.getActiveSpreadsheet() можно использовать ss в selection.

Модифицированный скрипт:

Пожалуйста, измените его следующим образом и попробуйте запустить снова.

С:
var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
source.getRange('G37:K37').copyTo(ss.getRange(selection), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

Кому:

var selection = ss.getSelection().getActiveRange()
source.getRange('G37:K37').copyTo(selection, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

Ссылка:

Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.

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