忽略 Google 应用程序脚本函数中的空单元格

Ignoring empty cells in Google app scripts function

我编写此函数是为了将电子表格条目添加到我的日历中。如您所见,现在我获取 B5:B30 范围内的所有条目。如果我没有填写此范围内的所有单元格,我会收到错误消息,因为我的参数有误。

现在,如果我只能从该范围中获取非空的值,我想一切都会奏效。有没有办法从我的范围中删除空单元格,或者只执行 getValue() 并将其保存在我的注册定义中(如果有值)?

function scheduleShifts() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarID = spreadsheet.getRange("C3").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);
var lr = spreadsheet.getLastRow()

var signups = spreadsheet.getRange("B5:D30").getValues()

for (x=0; x<signups.length;x++)
{
var shift = signups[x];
var startTime = shift[0];
var endTime = shift[1];
var volunteer= shift[2];
eventCal.createEvent(volunteer, startTime, endTime);
}
}

试试这个:

  if (volunteer && startTime && endTime) {
    eventCal.createEvent(volunteer, startTime, endTime);
  }

学习 Google Apps 脚本的一些最佳资源包括 Beginner's Guide, the New Apps Script Editor guide, the Fundamentals of Apps Script with Google Sheets codelab, the Extending Google Sheets pagejavascript.info and Mozilla Developer Network

谢谢!这有效:

function scheduleShifts() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarID = spreadsheet.getRange("C3").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);
var lr = spreadsheet.getLastRow()

var signups = spreadsheet.getRange("B5:D30").getValues()

for (x=0; x<signups.length;x++)
{
var shift = signups[x];
var startTime = shift[0];
var endTime = shift[1];
var volunteer= shift[2];
if (volunteer && startTime && endTime){
eventCal.createEvent(volunteer, startTime, endTime);
}
}}