Скрипт Google для листов Google - копирование диапазона, вставка, специальное добавление - PullRequest
0 голосов
/ 25 ноября 2018

Я действительно новичок в написании сценариев, раньше я работал с Microsoft Office, у которого есть специальная функция вставки "вставить", и теперь для листа Google я не могу его найти.

Я будуиметь исходный диапазон C2: C102 и назначение на том же листе D2: D102 я хочу, чтобы скрипт (который я мог запускать вручную еженедельно) копировал весь диапазон из источника и суммировал его с уже существующими данными в D2: D102 (только значения).

Вот небольшой пример - До после

Я пытался использовать этот код, но он просто заменяет значения.

function copyCells(){
   var thisSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var SourceSheet = thisSpreadsheet.getSheetByName("test");
  var SourceRange = thisSpreadsheet.getRange("C2:C102");

  var destinationSheet = thisSpreadsheet.getSheetByName("test");
  var destinationRange = destinationSheet.getRange("D2:D102");

   SourceRange.copyTo(destinationRange, {contentsOnly: true}); 
}

Любая помощь будет по достоинству оценена:)

1 Ответ

0 голосов
/ 25 ноября 2018

Не проверял код, но попробуйте это.

  • получить значения с помощью getValues()
  • суммировать значения
  • скопировать значения сsetValues()

    function copyCells(){
       var thisSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
       var SourceSheet = thisSpreadsheet.getSheetByName("test");
       var SourceRange = thisSpreadsheet.getRange("C2:C102");
       var SourceValues = SourceRange.getValues();
    
       var destinationSheet = thisSpreadsheet.getSheetByName("test");
       var destinationRange = destinationSheet.getRange("D2:D102");
       var destinationValues = destinationRange.getValues();
    
       for (var i = 0; i < SourceValues.length; i++)
         destinationValues[i][0] = parseFloat(destinationValues[i][0]) + parseFloat(SourceValues[i][0])
    
       destinationRange.setValues(destinationValues);
    }
    

ССЫЛКИ

range.getValues ​​()

range.setValues ​​()

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