setValue 返回范围的问题 - 只想从日期中提取"MMM, yy"作为文本



我很喜欢你的帮助,因为我一直让它的部分工作,但后来我试图解决一个问题,它导致另一个

我在这里有一个测试表,我已经在Apps脚本中尝试过了。不幸的是,由于某种原因,我无法将脚本粘贴到这里,但我已将其放在Test Sheet的新选项卡上。

基本上我有一个嵌套的编辑公式。A是日期B是月C为持续时间(触发列)

我要做的是:任何对Duration列的编辑

  • cola接收到今天的日期,除非已经在
  • 中输入了日期
  • 栏B从栏A中提取月份以显示为文本"MMM, ">

我已经设法使这几乎工作了几次,但我遇到了一些问题:

  • Sometimes set Value返回"Range">
  • 设置值显示我想要的,但实际单元格数据显示日期
  • 如果脚本输入了一个新的日期,但没有在现有的日期

正如我所说的,任何帮助都将是惊人的。

我想你在挣扎,因为它都在onEdit里面。你可以考虑把它们分成两部分。onEdit等。我把你的其他两个函数连接在一起,但你显然可以再次将它们分开:

function onEdit(e) 
{
if(e.range.getColumn() == 3){
setDates();}
}
function setDates(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var editrow = sheet.getActiveRange().getRow()
var today = sheet.getRange(editrow,1)
var value = new Date(new Date())
var month = sheet.getRange(editrow,2)
if(today.getValue() !== "") {
month.setValue(today.getValue()).setNumberFormat("MMM-yy")
}
else {
today.setValue(value).setNumberFormat('dd/MM/yyyy')
month.setValue(value).setNumberFormat("MMM-yy").setNumberFormat('@') //now you change it to text with that last condition
}
}

最新更新