2015-06-24 7 views
1

Я искал способ копирования определенных столбцов и строк данных на существующий лист. Моя цель - создать скрипт, который вытащит данные из листа основных элементов и создаст форму заказа на существующем листе.копирование определенного столбца данных на другой лист

Вот мой код

function createOrder() { 
var ss = SpreadsheetApp.getActiveSheet(); 
var ordess = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Ordering"); 
var mayitems = 186; //number of rows 
var descrip = ss.getRange(2, 10, mayitems, 4).getValues(); //first 4 columns to pull 
var descrip2 = ss.getRange(2, 19, mayitems).getValues(); //fifth column to pull 
var price = ss.getRange(2, 76, mayitems).getValues(); //sixth column to pull 
var pallets = ss.getRange(640, 76, 1).getValues(); //specific cell to pull 
var targdesc = ordess.getRange(1, 1, mayitems, 4); //first 4 columns to copy to 
descrip.copyTo(targdesc); //copying the first 4 columns. 
} 

Я посмотрел на ссылку на функцию и CopyTo, кажется, один я должен использовать. Я последовал примеру, но когда я запускаю код, он дал мне TypeError. Не удалось найти функцию copyTo в объекте.

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

Любая помощь приветствуется.

ответ

0

Ваша переменная descrip представляет собой двумерный массив. Метод copyTo() работает с диапазоном, он не будет работать на массиве. Похоже, вы получаете данные из определенных столбцов, которые не находятся рядом друг с другом. Таким образом, вам нужно либо скопировать несколько диапазонов в несколько строк кода, либо собрать данные, которые вы хотите в массив, а затем использовать setValues() для установки значений в целевом местоположении. Если вы хотите использовать copyTo(), то вам не нужно использовать getValues().

var descrip = ss.getRange(2, 10, mayitems, 4); 
var targdesc = ordess.getRange(1, 1, mayitems, 4); 
descrip.copyTo(targdesc); 

Единственное различие в том, что метод getValues() не прикован.

+1

Большое вам спасибо! Все работало, как только я удалил .getValue из каждой строки. –

+0

Спасибо за отзыв. –