簡體   English   中英

如果沒有可用的“返回”,Google Apps Script.getMonth 將不起作用

[英]Google Apps Script .getMonth isn't working if there is no available “return”

我正在嘗試使用“get.Month”,但是當我運行代碼時出現錯誤:

“TypeError:exSheet.getRange (...)。GetValue (...)。GetMonth 不是函數”

當我把“return tempSum;” 在“如果”之外沒有錯誤並且代碼有效......

我嘗試使用“.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 function 只能應用於日期 object

類型錯誤:SpreadsheetApp.getActiveSheet(...).getRange(...).getValue(...).getMonth 不是 function

表示您的單元格值未被正確識別為日期 object,您可以使用Logger.log(typeof exSheet.getRange(i, 5).getValue());

驗證您正在迭代的單元格確實是日期(不是字符串或空單元格),如有必要,將數據類型設置為日期,例如從 Google 表格 UI 轉到Format->Number->Date 根據您的區域設置,您可能需要調整日期格式。

如 theMaster 所指出的,在沒有看到您的電子表格的情況下,錯誤的原因很可能來自您的循環定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM