Google Apps Script Copying Specifi c Диапазон от любой вкладки до мастер-листа - PullRequest
1 голос
/ 10 апреля 2020

Так что, по сути, я хотел создать сценарий, который переносит данные из определенного диапазона c на одном листе и помещает их в мастер-лист, или, как я его назвал, "вечный" , Новые вкладки создаются ежедневно, и указанный диапазон на этих новых вкладках также нужно будет сдвигать при появлении соответствующего запроса. Когда я пытаюсь использовать сценарий, все работают, за исключением случаев, когда данные вставляются на страницу «Вечный», строки вставляют много строк друг от друга, а не вставляют в последнюю пустую строку. Я чрезвычайно новичок в кодировании и определенно нуждаюсь в указателях того, где я все испортил.

 function onOpen(e) {
      var ui = SpreadsheetApp.getUi();
      // Or DocumentApp or FormApp.
      ui.createMenu('Push to Perpetual')
          .addItem('Push to Perpetual', 'Macro')
          .addToUi();
    }
      function Macro() {
      var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Extraction Log Perpetual")
      var s2 = SpreadsheetApp.getActiveSheet()
      var a=s.getLastRow()+1
      s2.getRange(3, 21, 5, 13).copyTo(s.getRange(a,1),SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)
    };

1 Ответ

1 голос
/ 10 апреля 2020

Если данные вставляются во множество строк по фактической строке, то это означает, что на этом листе есть что-то еще, что приводит к тому, что getLastRow () пропускается до конца. Что вы могли бы сделать, так это получить последнюю строку из столбца А.

var a=s.getRange("A:A").getValues().filter(function(item){return item != ""}).length+1;

Расширение Вы получаете все значения из столбца А, а затем отфильтровывает ячейки, которые не имеют никакого значения , А затем получите длину массива, добавьте 1, чтобы вы могли получить следующую строку.

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