【问题标题】:Google Apps Script .getMonth isn't working if there is no available "return"如果没有可用的“返回”,Google Apps 脚本 .getMonth 将不起作用
【发布时间】:2020-05-05 11:09:48
【问题描述】:

我正在尝试使用“get.Month”,但是当我运行代码时出现错误:

"TypeError: exSheet.getRange (...). GetValue (...). GetMonth 不是 功能”

当我把“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();
    }
  }
}

【问题讨论】:

  • var monthCell移动到if块下方

标签: google-apps-script google-sheets custom-function


【解决方案1】:

getMonth() 是 Javascript 函数,只能应用于日期对象

类型错误: SpreadsheetApp.getActiveSheet(...).getRange(...).getValue(...).getMonth 不是函数

表示你的单元格值没有被正确识别为日期对象,可以通过Logger.log(typeof exSheet.getRange(i, 5).getValue());进行验证

验证您正在迭代的单元格确实是日期(不是字符串或空单元格),如有必要,请将数据类型设置为日期,例如从 Google 表格 UI 转到 Format->Number->Date。根据您的 Locale 设置,您可能需要调整日期格式。

没有看到您的电子表格,错误的原因很可能来自您的循环定义,正如 theMaster 所指出的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多