0

Я пытаюсь получить диапазон от одного листа и добавить диапазон плюс строку для создания новой строки на новом листе. Новая строка в новом листе должна содержать строку, затем строку. Хотя я могу сделать это с помощью массива, но он не работает.Как получить строку и объединить строку и текстовую строку в одну новую строку

 //tradeName is the name of the source file. The code is super long so i did not include it in this snippet.  

     var fileList = DriveApp.getFilesByName(tradeName); 
     var fileId = fileList.next().getId(); 
     var sheetCurrent = SpreadsheetApp.getActiveSheet(); 
     var source = SpreadsheetApp.openById(fileId); 
     var source_range = source.getRange("A20:AE20"); 

     sheetCurrent.appendRow([tradeName,A20:AE20]); 

ответ

1

Вы не можете смешивать диапазоны и строковые значения. Как вы заметили, аргумент в appendRow должен быть массивом, поэтому правильный способ сделать то, что вы хотите, - это добавить строку в массив до, добавив новую строку. С другой стороны, когда вы извлекаете значение строки, вы получаете массив массивов (2D-массив), поэтому нам нужно взять только внутренний массив и использовать метод unshift для добавления элемента перед другими.

код может выглядеть так:

function myFunction() { 
    var string = " ccccxxxx"; 
    var sheetCurrent = SpreadsheetApp.getActiveSheet(); 
    var source = SpreadsheetApp.openById(fileId); 
    var source_range = source.getRange("A20:AE20"); 
    var source_rangeValue = source_range.getValues(); // 2D ARRAY 
    source_rangeValue[0].unshift(string);//add the string to the inner array 
    sheetCurrent.appendRow(source_rangeValue[0]); 
} 
+0

спасибо за помощь. Приятно знать, что вы не можете смешивать струны и диапазоны! –