Скопируйте несколько ячеек в одну ячейку с помощью скрипта Google - PullRequest
0 голосов
/ 01 февраля 2020

Может кто-нибудь сказать мне, как я копирую и объединяю несколько ячеек в одну ячейку с помощью скрипта Google?

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

Вместо этого я хочу просто объединить его в одну ячейку.

function copyToSheet() {
  var srcTitle=getActiveSheet().getRange("C7");
  var srcText=getActiveSheet().getRange("C22:C28");
  var srcOptions=getActiveSheet().getRange("C32:C41");
  var srcListings=getActiveSheet().getRange("C44:C60");

  var extractedValues = [srcTitle, srcText, srcOptions, srcListings]

  var dstTitle="C4";
  var dstText="D4";
  var dstOptions="E4";
  var dstListings="F4";


  var dstList = [dstTitle, dstText, dstOptions, dstListings]

  var index;
  for (index = 0; index < extractedValues.length; ++index) {
    extractedValues[index].copyTo(getDestinationSheet().getRange(dstList[index]), {contentsOnly:true})
  }

}

Ответы [ 2 ]

2 голосов
/ 01 февраля 2020

Копировать и объединить

function copyToAndMerge() {
  var ss=SpreadsheetApp.getActive();
  var ssh=ss.getSheetByName('Sheet1');//src sheet
  var dsh=ss.getSheetByName('Sheet2');//des sheet
  var v=[];
  var rgA=['C7','C22:C28','C32:C41','C44:C60'];//input ranges  
  rgA.forEach(function(rg){
    var vA=ssh.getRange(rg).getValues();
    vA.forEach(function(r,i){v=v.concat(r);});
  });
  //Logger.log(v);
  //v.sort(function(a,b){return a-b;});//if you want to sort the output this sorts numerically
  dsh.getRange(1,1).setValue(v.join(', '));//output cell you can change the delimiter
}

Выходная ячейка:

enter image description here

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

0 голосов
/ 02 февраля 2020

Вдохновленный @cooper, используя dsh.getRange(1,1).setValue(v.join(', '));

Я застрял, думая, что могу только запустить функцию копирования на объекте. Вместо этого я мог бы просто использовать функцию setValue для объекта листа.

function copyToSheet() {
  var srcTitle=getActiveSheet().getRange("C7").getValue();
  var srcText=getActiveSheet().getRange("C22:C28").getValues();
  var srcOptions=getActiveSheet().getRange("C32:C41").getValues();
  var srcListings=getActiveSheet().getRange("C44:C60").getValues();

  var extractedValues = [srcTitle, srcText, srcOptions, srcListings]

  var dstTitle="C4";
  var dstText="D4";
  var dstOptions="E4";
  var dstListings="F4";


  var dstList = [dstTitle, dstText, dstOptions, dstListings]

  var index;
  for (index = 0; index < extractedValues.length; ++index) {
    getDestinationSheet().getRange(dstList[index]).setValue(extractedValues[index]);
  }

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