Javascript 谷歌脚本GetRange是乘法而不是加法?
我有一个代码,它应该输入一个日历事件,然后在单元格中插入一个便条,上面写着“Inputed”。这一部分有效,但仅在一定程度上有效 如果我有多个事件(在单独的行上),它会在第一个事件上显示我想要的“输入”。但对于其他人,它会在下面10行而不是1行创建注释。看看我的代码,我看不到任何会导致它这样做的东西——因为日历事件是完美创建的。我相信它存在于Javascript 谷歌脚本GetRange是乘法而不是加法?,javascript,google-apps-script,google-sheets,google-calendar-api,Javascript,Google Apps Script,Google Sheets,Google Calendar Api,我有一个代码,它应该输入一个日历事件,然后在单元格中插入一个便条,上面写着“Inputed”。这一部分有效,但仅在一定程度上有效 如果我有多个事件(在单独的行上),它会在第一个事件上显示我想要的“输入”。但对于其他人,它会在下面10行而不是1行创建注释。看看我的代码,我看不到任何会导致它这样做的东西——因为日历事件是完美创建的。我相信它存在于var Comment部分,但是那里没有乘法 谁能看出我错在哪里 function CalendarInput() { var sheet
var Comment
部分,但是那里没有乘法
谁能看出我错在哪里
function CalendarInput() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 3; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 26); //What data will be used
var data = dataRange.getValues();
var cal = CalendarApp.getDefaultCalendar(); //Gets the correct calendar
for (i in data) {
var row = data[i];
var title = row[2]; // Column with Title
var desc = row[8]; // Column with Description
var date = row[3]; //Column with Date
var edate = row[4] //Column with end date
var loc = row[9]; //Column with Location
var invite = row[11] //Column with Invite List
var sent = row[12] //Check Sent
var check = row[7]
var Comment = sheet.getRange(i+startRow, 7).setNote("Inputted")
cal.createAllDayEventSeries(title, new Date(date), CalendarApp.newRecurrence().addDailyRule().until(new Date(edate)), {description:desc,location:loc,guests:invite})
关于在中使用
for..来循环阵列,有文档记录的警告,请参见示例
您看到的问题是由应用程序脚本中的for..in
工作方式引起的
演示代码
此测试函数将演示在第行i+startRow
上执行.setComment()
时发生的情况:
function test() {
var data = [ [2,3,4,5],[5,4,3,2],[6,7,8,9],[9,8,7,6] ];
var startRow = 2;
var i;
Logger.log("for (var i in data)");
for (i in data) {
Logger.log( i + startRow );
}
Logger.log(typeof i);
Logger.log("for (var i = 0; i < data.length ; i++)");
for (i = 0; i < data.length ; i++) {
Logger.log( i + startRow );
}
Logger.log(typeof i);
}
[13-06-01 22:41:10:046 EDT] for (var i in data)
[13-06-01 22:41:10:046 EDT] 02
[13-06-01 22:41:10:046 EDT] 12
[13-06-01 22:41:10:046 EDT] 22
[13-06-01 22:41:10:046 EDT] 32
[13-06-01 22:41:10:047 EDT] string
[13-06-01 22:41:10:047 EDT] for (var i = 0; i < data.length ; i++)
[13-06-01 22:41:10:047 EDT] 2.0
[13-06-01 22:41:10:047 EDT] 3.0
[13-06-01 22:41:10:047 EDT] 4.0
[13-06-01 22:41:10:047 EDT] 5.0
[13-06-01 22:41:10:047 EDT] number
for (var i = 0; i < data.length ; i++) {
...