在将日历数据导入每个 calednar 之前,我一直在尝试使用 Google Sheets 批量创建一些 Google Calednar。
我使用 Google Gemini 来帮助解决此问题,并建议使用以下脚本。当我犯了一些错误时,它甚至告诉我哪里出了问题,但现在我遇到了问题,它能够帮助我。 Google Gemini 给我的脚本是。
function createCalendars() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var calendarName = data[i][COLUMN_NUMBER_WITH_CALENDAR_NAMES];
CalendarApp.createCalendar(calendarName);
}
}
我按照建议修改了它。
function createCalendars() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(Calendars_bulk_creation);
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var calendarName = data[i][1];
CalendarApp.createCalendar(calendarName);
}
}
当我运行它时,我收到错误:
Error
ReferenceError: Calendars_bulk_creation is not defined
createCalendars @ Code.gs:2
我尝试的是运行上面的脚本,我期望的是创建一些日历。显然这没有发生。
根据 erik258 的建议,我更新了函数以包含双引号,但这导致了不同的错误。
function createCalendars() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Calendars_bulk_creation");
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var calendarName = data[i][1];
CalendarApp.createCalendar(calendarName);
}
}
我得到的新错误是:
TypeError:
Cannot read properties of null (reading 'getDataRange') createCalendars @ Code.gs:3
谁能告诉我我做错了什么?
您的 Google Apps 脚本项目中有一个“虚拟代码”。我建议您创建一个新项目并仅包含您正在处理的代码。
Google Apps 脚本使用 JavaScript 作为编程语言。像 Google Gemini 这样的工具可能会有帮助,但是你应该小心,因为 JavaScript 的使用方式有很多,它可能会产生幻觉,所以我建议在使用像 Google Gemini 这样的工具之前,先阅读 https:// Developers.google.com/apps-scripts/overview 详尽的指南和示例。