Скопируйте определенные ячейки из одной электронной таблицы в другую в той же книге, используя скрипт Google Apps. - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть форма Google, которая собирает данные о клиентах в электронную таблицу Google с двумя вкладками;sheet1 = Traffic и sheet2 = ComMan.Я пытаюсь переместить данные, захваченные в моей переменной «spot1», с вкладки «Трафик» на вкладку «ComMan» и не могу понять, как это сделать.Я знаю, что все работает до линии sheet.getRange (spot1) .copyTo (targetRange); .Я надеюсь, что кто-то может помочь.Спасибо за ваше время.

Вот мой код:

function onEdit() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var r = sheet.getActiveCell();
var rowIndex = r.getRow();

var sheet1 = "Traffic"; //the active spreadsheet
var sheet2 = "ComMan"; //the ComMan Tab
var status1Col = 19;//status1Col if "No"
var status1Value = "ComMan";//if status1Col = "No", select "ComMan" in the status1Value to send to the ComMan tab

var clientInfo = sheet.getRange(rowIndex, 1, 1, 5);//cols A:E contain client info
var status1Range = sheet.getRange(rowIndex, 11, 1, 5);//cols K:O contain spot 1 info
var comDelValue = sheet.getRange(rowIndex, 60, 1, 1);//col BG contains spot 1 delivery method

var spot1 = [[clientInfo.getValues()],[spot1Info.getValues()],[comDelInfo.getValues]]; //an array to capture all the spot 1 data in one shot

//the statement below will copy the date in spot1 variable and send it to the ComMan tab
if (sheet.getName() == sheet1 && range.getColumn() == status1Col && 
range.getValue() == status1Value){
var targetSheet = ss.getSheetByName(sheet2);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() +1, 1);
sheet.getRange(spot1).copyTo(targetRange);
}
}

1 Ответ

0 голосов
/ 12 декабря 2018

Понятно, что вы хотите иметь возможность сделать что-то вроде следующего.Надеюсь, это поможет вам.

function copyDisconnectedRangesToAnotherSheet(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet22');
  var rowIndex=2
  var vA = sh.getRange(rowIndex, 1, 1, 5).getValues()[0];//cols A:E contain client info
  var vB = sh.getRange(rowIndex, 11, 1, 5).getValues()[0];//cols K:O contain spot 1 info
  var vC = sh.getRange(rowIndex, 60, 1, 1).getValues()[0];//col BG contains spot 1 delivery method
  var vD=vA.concat(vB.concat(vC));
  var rg=sh.getRange(sh.getLastRow()+1,1,1,vD.length);
  rg.setValues([vD]);
  rg.copyTo(ss.getSheetByName('Sheet21').getRange(1,1));//copied to A1
  rg.clearContent();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...