Дубликат листа с копией, размещенной рядом с оригиналом - PullRequest
0 голосов
/ 10 мая 2019

У меня есть скрипт для дублирования листа в той же электронной таблице:

function duplicateSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var devis = ss.getActiveSheet();
devis.copyTo(ss).setName('CopyDevis');

Он работает нормально, однако вкладка копирования создается в самом правом углу электронной таблицы.Это небольшая проблема, потому что у меня много вкладок, и мне нужно было бы перейти в крайнее правое положение, а затем переместить его обратно влево.Я хочу, чтобы копия была создана прямо рядом с оригиналом.

Мне известна функция moveActivesheet, но я не хочу ее использовать, потому что она обязывает меня сделать копию активной (setActivesheet) - по какой-то причине я хочу, чтобы процесс выполнялся без измененияактивный лист.

Итак, я посмотрел на getIndex () (который подскажет мне положение активного листа и создаст копию прямо рядом с ним - но CopyTo не разрешает эту переменную (я думаю).

InsertSheet () не будет работать, потому что это сделает новый лист активным.

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 11 мая 2019

Переместить последний лист на одну позицию справа от активного листа

В моих электронных таблицах при создании дубликата он создается сразу справа от активного листа.Но если ваш создает его как последний на правом конце.Тогда эта функция будет делать то, что вы просили.

function moveLastSheetOnePositionToRightOfTheActiveSheet() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var actidx=sh.getIndex();
  var shts=ss.getSheets();
  if(sh) {    
    Sheets.Spreadsheets.batchUpdate(
      {
        requests:[
          {
            "updateSheetProperties": 
            {             
              "properties":
              {
                "sheetId":shts[shts.length-1].getSheetId(),
                "index": actidx
              },
              "fields": "index"                      
            }
          }
        ]
      }, ss.getId());
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...