由于第42行的服务器错误,谷歌脚本中的简单获取范围脚本失败 - 不确定原因?

时间:2015-11-08 07:12:29

标签: google-apps-script google-sheets

所以我是编程以及谷歌脚本的新手。我刚刚开始编写一个非常基本的脚本,将来自各种不同标签的数据编译成一个新的" home"选项卡 - 全部位于同一电子表格中。在运行脚本时,我得到了#34;我们很抱歉,发生了服务器错误。请稍等一下再试一次。 (第42行,文件"代码")"而且我不确定为什么。调试时,我可以看到正在提取正确的值。

代码如下,任何帮助将不胜感激。我也可能以非常低效的方式解决这个问题,所以任何建议都会有很大的帮助。 感谢

var SHEET_HOME = 'Home';
var SHEET_CCSF = 'CCSF2015';
var SHEET_FRANCE = 'FranceClusters';
var SHEET_SCOT = 'Scotland';
var SHEET_CCASIA = 'CCAsia2015';
var SHEET_NORDIC = 'NordicGames2015';
var SHEET_NORWAY = 'Norway';
var SHEET_GAMESCOM ='Gamescom2015';

function UpdateData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var home = ss.getSheetByName(SHEET_HOME);
 var ccsf = ss.getSheetByName(SHEET_CCSF);
 var scot = ss.getSheetByName(SHEET_SCOT);
 var ccasia = ss.getSheetByName(SHEET_CCASIA);
 var nordic = ss.getSheetByName(SHEET_NORDIC);
 var norway = ss.getSheetByName(SHEET_NORWAY);
 var gamescom = ss.getSheetByName(SHEET_GAMESCOM);


 // Determine length of each database
 var length1 = ss.getSheetByName(SHEET_CCSF).getRange("N1").getValue();
 var length2 = ss.getSheetByName(SHEET_SCOT).getRange("N1").getValue();
 var length3 = ss.getSheetByName(SHEET_CCASIA).getRange("N1").getValue();
 var length4 = ss.getSheetByName(SHEET_NORDIC).getRange("N1").getValue();
 var length5 = ss.getSheetByName(SHEET_NORWAY).getRange("N1").getValue();
 var length6 = ss.getSheetByName(SHEET_GAMESCOM).getRange("N1").getValue();  

 // Provide starting row for each additional range of data
 var start2 = 4+length1;
 var start3 = start2 + length2;
 var start4 = start3 + length3;
 var start5 = start4 + length4;
 var start6 = start5 + length5; 

 // Select required range in each db
 var range1 = ccsf.getRange("A2:L"+length1);
 var range2 = scot.getRange("A2:L"+length2);
 var range3 = ccasia.getRange("A2:L"+length3);
 var range4 = nordic.getRange("A2:L"+length4);
 var range5 = norway.getRange("A2:L"+length5);
 var range6 = gamescom.getRange("A2:L"+length6);

 // Fill Home tab with all data
 range1.copyValuesToRange(home, 1, 12, 4, length1);
 range2.copyValuesToRange(home, 1, 12, start2, length2);
 range3.copyValuesToRange(home, 1, 12, start3, length3);
 range4.copyValuesToRange(home, 1, 12, start4, length4);
 range5.copyValuesToRange(home, 1, 12, start5, length5); 
 range6.copyValuesToRange(home, 1, 12, start6, length6);  
}

1 个答案:

答案 0 :(得分:0)

可能是因为不同的长度变量不能获得长度,而是指示范围的值。如果它是您所追求的值的长度,则必须添加.length

var length1 = ss.getSheetByName(SHEET_CCSF).getRange("N1").getValue().length;

....