Google Apps 脚本 "SetFormula" 不是函数

Google Apps Script "SetFormula" is not a function

我正在尝试编写一个公式来为特定单元格提供一个 formla 如果在按下按钮时它是空白的。

以下是我目前的情况:

function CustomCoords() {
  var SS = SpreadsheetApp.getActive().getSheetByName('FORM');
  var Lat = ('C20');  
  var Long = ('C21');
  var LatBlank = SS.getRange(Lat).isBlank()
  var LongBlank = SS.getRange(Long).isBlank()

  if (LatBlank == "1"){
    Lat.SetFormula("=IF(C9>500000,(LEFT(C9,2)*10000)+(MID(C9,4,2)*100)+MID(C9,7,4)")
  } else {
    Lat.Setvalues("")
  }

  if (LongBlank == "1"){
    SS.getRange(Lat).SetValues("=IF(C9>500000,(LEFT($C,2)*10000)+(MID($C,4,2)*100)+MID($C,7,4)")
  } else {
    SS.getRange(Lat).SetValues("")
  }
}

我参考了几个论坛来将脚本放在一起,据我所知它应该可以工作,但是我一直收到标题中的错误。也就是说,在涉及到这些事情时,我仍然是一个初学者,所以我很容易错过一些东西!

非常感谢任何帮助

你的代码中有很多语法错误:-

  • var Lat = ('C20');string 而不是 range 并且您需要范围才能使用 .setValues("").
  • .setValues不是.Setvalues,uppercase-lowercase很重要,和SetFormula一样是小写s

还有很多错误,我建议您尝试这个示例脚本并了解差异。

function CustomCoords() {
  var SS = SpreadsheetApp.getActive().getSheetByName('FORM');
  var Lat = SS.getRange('C20');  
  var Long = SS.getRange('C21');
  var LatBlank = Lat.isBlank()
  var LongBlank = Long.isBlank()
  if (LatBlank){
    Lat.setFormula("=IF(C9>500000,(LEFT(C9,2)*10000)+(MID(C9,4,2)*100)+MID(C9,7,4)") 
  } else {
    Lat.setValue("") // not setValues becasue you're updating single cell(C20)
  }

  if (LongBlank){
    Lat.setValue("=IF(C9>500000,(LEFT($C,2)*10000)+(MID($C,4,2)*100)+MID($C,7,4)")
  } else {
    Long.setValue("")
  }
}

参考:-

setValue

setFormula