Google电子表格权限

时间:2016-08-19 22:49:16

标签: javascript google-apps-script permissions google-sheets

我认为这是专家的意思。它是,一步一步:

  • 我创建了一个Google电子表格
  • 正在运行以下脚本:

label
  • 此电子表格与其他用户共享,作为编辑
  • 某些编辑的某些时间间隔是限制的

问题

  • 当所有者更新两个描述的列(参见上面的代码)时,脚本工作正常

  • 当共享编辑器修改某些内容时,只需脚本的第二个条件(如果)正常工作

有人可以帮我吗?

脚本是否有问题,也许?为什么它只在电子表格所有者上正常工作?

1 个答案:

答案 0 :(得分:0)

而不是使用单个'='
使用double'=='

在代码中更改以下语句:

if (updateColName = "Nº Cotação")

要:

if (updateColName == "Nº Cotação")

并更改以下内容:

if (updateColName = "Resposta ao Cliente")

要:

if (updateColName == "Resposta ao Cliente")

更新:
这是完整的脚本代码,应该按照您的要求工作:

function onEdit(event) {
  var actRng = event.source.getActiveRange(); 
  var actSheet = actRng.getSheet();
  if( actSheet.getName() == 'Cotações' && actRng.getRowIndex() > 1 ) {
    var updateColName = actSheet.getRange(1,actRng.getColumn()).getValue();
    var headers = actSheet.getRange(1, 1, 1, actSheet.getLastColumn()).getValues();
    var date = Utilities.formatDate(new Date(),'GMT-3','dd-MM HH:mm');
    if( updateColName == 'Nº Cotação' ) {
      var dateCol = headers[0].indexOf('Data proposta');
      actSheet.getRange(actRng.getRowIndex(),dateCol+1).setValue(date);
    }
    else if( updateColName == 'Resposta ao Cliente' ) {
      var dateCol = headers[0].indexOf('Contatado');
      actSheet.getRange(actRng.getRowIndex(),dateCol+1).setValue(date);
    }
  }
};