我在技術上非常無能,但我會盡量解釋我的問題。
我有一個 Google 表單,我將在其中收到大量提交,我想根據其中一個問題的答案將主回應 Google 表中的回應拆分為多個選項卡。
我希望在提交表單時觸發腳本,因此不同的選項卡會自動更新與特定選項卡相關的最后一次提交。
我試過一個腳本,但是,在提交時,它將所有以前的輸入復制在一起,所以我最終得到了很多重復。
我正在嘗試以下代碼,它只傳輸最后一次提交:
function eA() {
var sSheet = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = sSheet.getSheetByName("Form Responses 1");
var lastRow = srcSheet.getLastRow();
var lastColumn = srcSheet.getLastColumn();
var lastRowOfData = srcSheet.getRange(lastRow, 1, 1, lastColumn).getValues();
var oneD_array = lastRowOfData.join();
var cellValue = srcSheet.getRange(2,2,999).getValue();
if ( cellValue == "EA" ) {
var tarSheet = sSheet.getSheetByName("EA");
tarSheet.appendRow(oneD_array);
}
但是,這似乎行不通。
任何幫助都會令人難以置信。
太感謝了。
uj5u.com熱心網友回復:
如果 colum1 中的答案是 EA,則將資料附加到作業表 EA
function eA(e) {
const ss = SpreadsheetApp.getActive();
if (e.values[1] == "EA") {
ss.getSheetByName('EA').appendRow(e.values);
}
}
function createTrigger() {
if (ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "eA").length == 0) {
ScriptApp.newTrigger("eA").forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}
}
onFormSubmit 事件物件
如果您想了解有關偶數物件的更多資訊Logger.log(JSON.stringify(e)),請在觸發器處理函式的開頭附近添加。
嘗試獲取表單提交的最后一行并不是一個好主意,因為它的觸發器非常快地向您襲來,那么您實際上可能獲取了錯誤的資料。最好使用事件物件值或命名值。
uj5u.com熱心網友回復:
在這種情況下,我不會使用谷歌應用程式腳本和觸發器,而是使用查詢函式。
假設您的表單結果在 Sheet1 上,對于 EA 結果表,您應該將其粘貼到單元格 A1 中:
=query(Sheet1!A:H,"select * where B='EA'")
假設 B 列具有您要拆分的變數。請注意,查詢語言區分大小寫,因此如果您說“where b = 'ea'”,它將不起作用。
只要您不在所選范圍內放置任何行,這將始終是最新的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/412049.html
標籤:
