我是google脚本的新手,我需要将当前活动工作表复制到新工作表,然后根据单元格值重命名此工作表。我的问题是单元格值是一个日期和下面的代码工作,而是重新命名工作表30-May-2014它返回数字等价物41789.我如何粘贴实际日期。
function CreateNewTimesheet() {
// The code below makes a duplicate of the active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet()
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
// The code below will rename the active sheet to Month End date based on cell O3
var myValue = SpreadsheetApp.getActiveSheet( ).getRange("O3").getValue();
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue);
}
答案 0 :(得分:4)
您需要将值格式化为字符串,然后使用它来设置名称。
var localTimeZone = "Europe/London";
var dateFormatForFileNameString = "yyyy-MM-dd'at'HH:mm:ss";
function CreateNewTimesheet() {
// The code below makes a duplicate of the active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet()
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
// The code below will rename the active sheet to Month End date based on cell O3
var myValue = SpreadsheetApp.getActiveSheet( ).getRange("O3").getValue();
var dateString = getDateString_(myValue);
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(dateString);
}
//Function to get Date as a string
function getDateString_(dateValue) {
return Utilities.formatDate(dateValue, localTimeZone,
dateFormatForFileNameString);
}
希望有所帮助。
答案 1 :(得分:0)
您需要构建一个新的Date(myValue),然后在Utilities类中查找日期格式化函数。
答案 2 :(得分:0)
在代码中使用.getDisplayValue()代替.getValue()应该可以解决问题。
它将单元格中显示的值作为字符串显示,并考虑日期格式等内容,因此当您使用该值重命名工作表时,工作表名称将与您在单元格中看到的相同。