Можно ли добавить следующий столбец по горизонтали в листах Google? - PullRequest
0 голосов
/ 12 апреля 2020

У меня сейчас есть этот скрипт. Я отлично работаю, однако, я бы предпочел, чтобы добавлялся к следующему столбцу по горизонтали каждый раз, когда выбирается добавление. Прямо сейчас он добавляется после последнего ряда. Пожалуйста, уточните, что нужно изменить. Спасибо!

function myFunction() {
  var ss = SpreadsheetApp.openById("1aACg8M89LLxILIvUqWT2ZnrykF8e3BkIiamj2NhKrmc")
  var sheet = ss.getSheetByName("Framsida");
  var data = sheet.getRange(2, 3, 25, 1).getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log(data[i][0]);
    Logger.log(data[i][1]);
  }
  var row= sheet.getLastRow();
 Logger.log(row);
 Logger.log(data);
   var temp = data
     for (i in temp){
       var write = temp[i]
       if (row >=10) {ss.getSheetByName("Archive").appendRow(write)};

     } 
   ss.getSheetByName("Framsida").getRange(2, 3, 25, 1).clear();

}

1 Ответ

1 голос
/ 13 апреля 2020
  • Вы хотите извлечь значения из ячеек «C2: C26» на листе «Framsida» и хотите поместить значения в следующий столбец последнего столбца на листе «Архив».

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Чтобы получить последний столбец листа, используйте getLastColumn(). Здесь я хотел бы предложить 2 шаблона для достижения вашей цели.

Шаблон 1:

В этом шаблоне используются getValues и setValues.

function myFunction() {
  var ss = SpreadsheetApp.openById("1aACg8M89LLxILIvUqWT2ZnrykF8e3BkIiamj2NhKrmc")
  var srcSheet = ss.getSheetByName("Framsida"); // <--- Modified
  var srcRange = srcSheet.getRange(2, 3, 25, 1);
  var data = srcRange.getValues();

  var dstSheet = ss.getSheetByName("Archive");
  dstSheet.getRange(2, dstSheet.getLastColumn() + 1, data.length, 1).setValues(data);

  srcRange.clear();
}

Шаблон 2:

В этом шаблоне используется copyTo.

function myFunction() {
  var ss = SpreadsheetApp.openById("1aACg8M89LLxILIvUqWT2ZnrykF8e3BkIiamj2NhKrmc")
  var srcSheet = ss.getSheetByName("Framsida"); // <--- Modified
  var srcRange = srcSheet.getRange(2, 3, 25, 1);

  var dstSheet = ss.getSheetByName("Archive");
  srcRange.copyTo(dstSheet.getRange(2, dstSheet.getLastColumn() + 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES);

  srcRange.clear();
}
  • Когда srcRange.copyTo(dstSheet.getRange(2, dstSheet.getLastColumn() + 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES); изменяется на srcRange.copyTo(dstSheet.getRange(2, dstSheet.getLastColumn() + 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, true);, значения подставляются транспонированием ,
    • Если appended to the next column horizontally означает, что вы хотите поместить значения из "C2: C26" по горизонтали в последний столбец путем транспонирования, проверьте это.

Ссылки:

Если я неправильно понял ваш вопрос и это не тот результат, который вам нужен, я приношу свои извинения.

...