【发布时间】:2016-03-25 10:46:45
【问题描述】:
我的职能需要帮助,应该:
- 复制隐藏的工作表
- 确保不存在重复的命名工作表
- 从单元格引用中动态命名副本
- 显示工作表副本
这是我到目前为止所拥有的,但我对语法不太清楚: 修复:(if 语句中的 '=' 不正确,而不是 '==')
function checkSheetName(name)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allSheets = ss.getSheets();
var cSheets = ss.getNumSheets();
for(i = 1; i < cSheets; i++)
{
var currentSheetName = allSheets[i].getName();
if(currentSheetName == name);
return true;
}
return false;
}
function createNextMonth()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var tz = ss.getSpreadsheetTimeZone();
var allSheets = ss.getSheets();
var dateSheet = ss.getSheetByName("Start Date:");
var currentSheet = ss.getActiveSheet();
var startRange;
// Check where to get the cell references from
if(dateSheet != currentSheet)
startRange = currentSheet.getRange(4,7);
else
startRange = currentSheet.getRange(4,7);
var startDate = new Date(startRange.getValue());
// Format date to MONTH (YYYY)
var newSheetName = Utilities.formatDate(startDate, tz, "yyyy-MMMMM-dd'T'HH:mm:ss'Z'");
if(!newSheetName)
// Error making name
return false;
if(!checkSheetName(newSheetName))
// Error duplicate
// Inform user
return false;
// Locate the template sheet
var templateSheet = ss.getSheetByName("TEMPLATE");
if(!templateSheet)
// Error missing
// Couldn't find template
return false;
// Set the active sheet to the template sheet
ss.setActiveSheet(templateSheet);
// Duplicate active sheet
ss.duplicateActiveSheet();
// Unsure how to locate duplicated sheet
ss.renameActiveSheet(newSheetName);
// Unsure how to set new sheet cell B3 to startDate
return true;
}
更新:忘了提问题是它似乎没有得到正确的日期值,或者没有得到正确的单元格。
更新 2:更正了循环中的简单语法错误,从而解决了问题。
【问题讨论】:
标签: javascript google-apps-script google-sheets