2017-07-30 48 views
0

我正在嘗試更新依賴於同一行中另一個單元格的單元格值。這意味着不會由setRankID函數完成,但不管我嘗試過它只是吐出錯誤。使用UI菜單更新單元格(Googe工作表腳本)

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"); 
    } 
    } 
} 

我wan't它做通過UI使用該功能時,檢查在列A單元和更新B列依賴於A列的值的值。

如果A欄的值爲「Test1」,那麼B欄應設置爲「Toast」的值。

+0

沒有範圍或columnStart或價值電子表格中的方法。查看文檔[這裏](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet)。 – Cooper

回答

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

+0

抱歉,我在描述我遇到的問題時有點不清楚。 – Dunkstormen

相關問題