使用UI菜单更新单元格(Googe Sheets Scripts)

时间:2017-07-30 13:08:57

标签: javascript google-sheets

我正在尝试更新依赖于同一行中另一个单元格的单元格值。这不是由setRankID函数完成的,但无论我尝试过什么,它只是吐出错误。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  ui.createMenu('Daniagaming EMS Tools')
    .addItem('Opdater RID\'s', 'setRankID')
    .addToUi();
}

function setRankID() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(),
      sheet = ss.getActiveSheet(),
      range = ss.range,
      columnNumberToWatch = 1; // A = 1, B = 2 etc.

  if(sheet.getName() === "Ark1" && range.columnStart === columnNumberToWatch) {
    if(ss.value === "Commisioner") {
      sheet.getRange(range.rowStart, 2).setValue("1");
    }
  }
}

我不想做的是通过UI使用该功能,检查A列中的单元格,并根据A列的值更新B列的值。

如果列A的值为“Test1”,则列B应设置为“Toast”值。

1 个答案:

答案 0 :(得分:1)

这是我认为你要求的一个简单例子。很难分辨,因为你的setRankID函数有很多错误。

function simpleExample()
{
  var ss=SpreadsheetApp.getActive();
  var sht=ss.getSheetByName('deleteDupes');
  var rng=sht.getDataRange();
  var rngA=rng.getValues();
  for(var i=1;i<rngA.length;i++)
  {
    if(rngA[i][0]=='Test1')
    {
      sht.getRange(i+1,2).setValue('Toast');
    }
    else
    if(rngA[i][0])
    {
      sht.getRange(i+1,2).setValue(rngA[i][0]);
    }
  }
}

这是运行该功能之前我的电子表格的样子:

enter image description here

以下是它的样子:

enter image description here