Google 如果没有可用的 Apps 脚本 .getMonth 将无法运行 "return"
Google Apps Script .getMonth isn't working if there is no available "return"
我正在尝试使用 "get.Month" 但是当我 运行 代码时出现错误:
"TypeError: exSheet.getRange (...). GetValue (...). GetMonth is not a
function"
当我将 "return tempSum;" 放在 "if" 之外时,没有错误并且代码有效...
我试着用“.setValue”代替 "return" 但没有用。
有人知道怎么解决吗?
function CALC_EX(chosenMonth){
switch(chosenMonth){
case "jan":
chosenMonth = 1;
break;
case "feb":
chosenMonth = 2;
break;
case "mar":
chosenMonth = 3;
break;
case "apr":
chosenMonth = 4;
break;
case "may":
chosenMonth = 5;
break;
case "jun":
chosenMonth = 6;
break;
case "jul":
chosenMonth = 7;
break;
case "aug":
chosenMonth = 8;
break;
case "sep":
chosenMonth = 9;
break;
case "oct":
chosenMonth = 10;
break;
case "nov":
chosenMonth = 11;
break;
case "dec":
chosenMonth = 12;
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var exSheet = ss.getSheetByName('Expenses');
var tempSum = 0;
for(var i=2;i>0;i++){
var range = exSheet.getRange(i, 5);
var monthCell = exSheet.getRange(i, 5).getValue().getMonth()+1;
if(!range.getValue()){
i = 0;
return tempSum;
}
if(monthCell === chosenMonth){
tempSum = tempSum + exSheet.getRange(i, 12).getValue();
}
}
}
getMonth()
是一个Javascript函数,只能应用于日期对象
TypeError:
SpreadsheetApp.getActiveSheet(...).getRange(...).getValue(...).getMonth
is not a function
表示您的单元格值未被正确识别为日期对象,您可以使用 Logger.log(typeof exSheet.getRange(i, 5).getValue());
进行验证
验证您正在迭代的单元格确实是日期(不是字符串或空单元格),如有必要,将数据类型设置为日期,例如从 Google 张 UI 到 Format->Number->Date
。根据您的 Locale 设置,您可能需要调整日期格式。
没有看到你的电子表格,很可能错误的原因来自于你的循环定义,正如大师所指出的。
我正在尝试使用 "get.Month" 但是当我 运行 代码时出现错误:
"TypeError: exSheet.getRange (...). GetValue (...). GetMonth is not a function"
当我将 "return tempSum;" 放在 "if" 之外时,没有错误并且代码有效...
我试着用“.setValue”代替 "return" 但没有用。
有人知道怎么解决吗?
function CALC_EX(chosenMonth){
switch(chosenMonth){
case "jan":
chosenMonth = 1;
break;
case "feb":
chosenMonth = 2;
break;
case "mar":
chosenMonth = 3;
break;
case "apr":
chosenMonth = 4;
break;
case "may":
chosenMonth = 5;
break;
case "jun":
chosenMonth = 6;
break;
case "jul":
chosenMonth = 7;
break;
case "aug":
chosenMonth = 8;
break;
case "sep":
chosenMonth = 9;
break;
case "oct":
chosenMonth = 10;
break;
case "nov":
chosenMonth = 11;
break;
case "dec":
chosenMonth = 12;
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var exSheet = ss.getSheetByName('Expenses');
var tempSum = 0;
for(var i=2;i>0;i++){
var range = exSheet.getRange(i, 5);
var monthCell = exSheet.getRange(i, 5).getValue().getMonth()+1;
if(!range.getValue()){
i = 0;
return tempSum;
}
if(monthCell === chosenMonth){
tempSum = tempSum + exSheet.getRange(i, 12).getValue();
}
}
}
getMonth()
是一个Javascript函数,只能应用于日期对象
TypeError: SpreadsheetApp.getActiveSheet(...).getRange(...).getValue(...).getMonth is not a function
表示您的单元格值未被正确识别为日期对象,您可以使用 Logger.log(typeof exSheet.getRange(i, 5).getValue());
验证您正在迭代的单元格确实是日期(不是字符串或空单元格),如有必要,将数据类型设置为日期,例如从 Google 张 UI 到 Format->Number->Date
。根据您的 Locale 设置,您可能需要调整日期格式。
没有看到你的电子表格,很可能错误的原因来自于你的循环定义,正如大师所指出的。