Google Sheets / Javascript Проблема вставки - PullRequest
0 голосов
/ 05 апреля 2020

Я использую функцию копирования Google Sheets. В ячейках M2: P10 есть формулы, которые вычисляют значение из другого листа. Я просто пытаюсь использовать функцию copyTo для вставки значений на другой лист, но функция вставки приводит к пустому выводу. Я не могу понять почему, потому что здесь все выглядит отлично. Справка!

 var id = "1I7Ptwg26W_WrLty9y7U-8c8kGKS9t8aw3SF-M2JwgJ1";
 var ss2 = SpreadsheetApp.openById(id).getSheetByName('Converted Data');
 var ss5 = SpreadsheetApp.openById(id).getSheetByName('PastedConverted');
 ss2.getRange('M2:P10').activate();
 ss2.getRange('M2:P10').copyTo(ss5.getRange("M2:P10"), {contentsOnly:true});

До:

enter image description here

После:

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Хотя вы уже опубликовали ответ, я думаю, что способ решения вашей проблемы не самый оптимальный.

Просто чтобы проиллюстрировать, как работает метод copyTo().

У вас есть origin (диапазон, из которого вы хотите скопировать), в котором вы вызываете copyTo() и target (место, в которое вы хотите скопировать) в качестве входного параметра.

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ss1 = ss.getSheets()[0];
  var ss2 = ss.getSheets()[1];

  var origin = ss1.getRange("A1:A5");
  var target = ss2.getRange("A1:A5");

  origin.copyTo(target);

}

Кроме того, вы можете добавить дополнительные параметры, чтобы скопировать только то, что вам нужно, с помощью CopyPasteType.

0 голосов
/ 05 апреля 2020

Ну, я не уверен, почему это работает, но не наоборот, но решил, что я дам вам то, что работает для меня:

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('MyPage'), true);
  spreadsheet.getRange('M:AB').activate();
  spreadsheet.getRange('\'MyPage\'!M:AB').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...