我有一张 Google 表格,每年都有不同的 SheetName,采用 YYYY 格式。(例如 2023、2024) 根据日期输入,我想获取 YYYY 并转到特定的工作表。
我已将日期转换为 YYYY:
var checkInYear = Utilities.formatDate(new Date(guestCInDate),'GMT','yyyy');
但是当我尝试时
var hterCalendar = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(checkInYear).getActiveRange().getValue();
它不会转到当年的特定工作表,而是转到文件中的第一张工作表。
我怀疑这是因为我的 checkInYear 是一个日期变量,而我的 Sheet name 是一个字符串,所以它找不到匹配项。
如何将我的 checkInYear 转换为字符串?
我已经尝试过:
var checkInYear = guestCInDate.Substring(1,4);
但出现错误:
TypeError: guestCInDate.Substring is not a function
按照@TheMaster的建议去做
console.log(typeof guestCInDate);
它应该提供类似这样的内容:
根据所提供的内容,假设
guestCInDate
是一个 字符串,即左侧的字符串。除非输入使其成为对象或其他数据类型,否则您将得到类似于右侧的内容。
下面的脚本使用条件(三元)运算符,根据脚本上的
specific
年份导航到 written
工作表,并根据@Saddles 建议,我选择使用setActiveSheet(sheet)
。
const myFunction = () => {
var guestCInDate = new Date("August 15, 2020");
console.log(typeof guestCInDate);
var checkInYear = Utilities.formatDate(new Date(guestCInDate), 'GMT', 'yyyy');
console.log(checkInYear);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var hterCalendar = ss.getSheetByName(checkInYear);
hterCalendar ? ss.setActiveSheet(hterCalendar) : null;
}
输出: