2017-04-22 42 views
0

請原諒我獲得幫助的帖子的長度,但該人在上週沒有上線,所以我想我會嘗試在這裏得到最後幾個結局。感謝您的任何額外幫助。數組參考的腳本問題

這是我的原始腳本。

function ImportDataRange() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName("AM trip"); //To Sheet Name 
var ssraw = SpreadsheetApp.openById("1n4**4HzvVS****RQhPHndUbn0N0nkpOE5NpO2U"); // From Spreadsheet ID 
var sheetraw = ssraw.getSheetByName("AM trip"); // From Sheet name 
var range = sheetraw.getRange("B9:U38"); 
var data = range.getValues(); 
sheet.getRange("C1").setValues(data) 
} 

My adjusted script:- 
function ImportDataRange() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName('AM trip'); //To Sheet Name 
var ssraw = SpreadsheetApp.openById('18h-UAy10EvANHZXLebspZsUbE2fisyEBAFnUYV9JBHs'); // From Spreadsheet ID 
var sheetraw = ssraw.getSheetByName('AM trip'); // From Sheet name 
var range = sheetraw.getRange('B7:U38'); 
var data = range.getValues(); 
var lastRow = sheet.getRange(sheet.getLastRow()+1,3).setValue(data); 

}} 
This takes B7 from the original spreadsheet and places it in the next blank row down and in Column C but not B7:U38, if i change setValue(data) to setValues(Data) I get the range height error. 

Then below, I got from you and below the script is the error it produces:- 
function ImportDataRange() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName('AM trip'); //To Sheet Name 
var ssraw = SpreadsheetApp.openById('18hAy10EvANHZXLebspZsUbE2fisyEBAFnUYV9JBHs'); // From Spreadsheet ID 
var sheetraw = ssraw.getSheetByName('AM trip'); // From Sheet name 
var range = sheetraw.getRange('B7:U38'); 
var data = range.getValues(); 
var lastRow = sheet.getLastRow()+1; 
    setValues(sheet, lastRow, 3, data); 

回答

0

錯誤的原因是範圍高度應該與輸入數據的高度相匹配。 你將不得不修改代碼,像這樣

function ImportDataRange() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName('AM trip'); //To Sheet Name 
var ssraw = SpreadsheetApp.openById('18hAy10EvANHZXLebspZsUbE2fisyEBAFnUYV9JBHs'); // From Spreadsheet ID 
var sheetraw = ssraw.getSheetByName('AM trip'); // From Sheet name 
var range = sheetraw.getRange('B7:U38'); 
var data = range.getValues(); 
var lastRow = sheet.getLastRow()+1; 
sheet.getRange(lastRow,3,data.length,data[0].length).setValues(data) 
} 

基本上,獲取數據數組的長度使用array.length給你的行數。你會發現它更多的細節here

上setValues方法細節可以發現here,同樣在getRange細節可以發現here

希望幫助

+0

如果今天我們有8項在一列(與服務員(ROW)數據),但明天我們在列中有12個條目(ROW)數據。 – Paul

+0

你可以使用[getDataRange()](https://developers.google.com/apps-script/reference/spreadsheet/sheet) –

+0

謝謝你完美地排序問題。這可能是厚臉皮的,但如果我在From電子表格中有5個工作表,並且目標電子表格中有5個工作表,那麼我如何才能將其他4個工作表中的相同範圍與目標工作表中的同名對應表達式相比較? – Paul