2016-11-11 70 views
0

我正在嘗試使用Google工作表腳本編輯器創建自定義onEdit函數。我想知道是否可以添加一個輸入參數,如onEdit(e,row),其中row是一個整數,用於指定目標單元格。這裏是我的小白代碼:如何將輸入參數添加到onEdit函數

function onEdit(e,row) { 

// writes the current date to the cell in column B on the same row when a cell in a specific column is edited 

var sheetNameToWatch = "M2"; 
var columnNumberToWatch = /* column */ 7; // column A = 1, B = 2, etc. 

var ss = SpreadsheetApp.getActiveSpreadsheet(); // not used atm 
var sheet = SpreadsheetApp.getActiveSheet(); // sheet on which changes are tracked 
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GRID-TRACKING") // sheet that contains formula cells 
var range = sheet.getActiveCell(); // active cell is cell being edited 

if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch) { 
var targetCell = sheet2.getRange(row, 2); // I want the input parameter to control the "row" so I can autofill 
targetCell.setValue("" + Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd")); // writes current date to cell 
} 
} 

我使用這個寫任何編輯對錶「M2」 G列的最後日期與公式表(「GRID跟蹤」)。我把公式放在列A中,並將日期寫入列B.問題是我的「行」變量是未定義的...如果我用一個固定的數字替換它,並且不嘗試添加參數,它的工作正常,但我需要一個可以自動填充的參數。

在細胞

我的公式是= onedit(單元格,行)

感謝,

Umpsy

+1

你不能喂其他任何參數爲onEdit。你只是想讓它發生在同一排?爲什麼不利用[事件對象](https://developers.google.com/apps-script/guides/triggers/events)通過? –

+1

閱讀onEdit文檔你知道它的用途。 –

回答

0

你不能傳遞任何其他變量onEdit。但是,如果您將此用作公式,我不明白爲什麼您甚至需要觸發器onEdit,它可以成功地成爲thisFunc()。正如我在代碼中看到的,您甚至不使用事件對象,所以肯定沒有理由擁有onEdit。您還必須考慮到,無論您何時編輯電子表格中的任何單元格,它都會啓動。

1

簡短的回答

如果要使用兩個或多個參數用另一個名稱,而不是onEdit您的功能。

說明

在谷歌Apps腳本,onEdit是一個保留的函數名。如果您不遵循指導使用保留的函數名稱,則可能會得到意想不到的結果。

參考