我正在嘗試創建一個具有資料庫主表和 8 個不同位置的作業表。
所以每次我向資料庫提交表單時,我都希望我的代碼讀取提交表單的 HUB 位置。并將所提交表格的詳細資訊復制到相關表格中。這就是我迄今為止所擁有的。
基本上,如果我描述流程會更容易:
- 用戶輸入相關詳細資訊
- 表單將其提交到資料庫表
- 代碼然后查看它用于哪個集線器,然后將詳細資訊復制到相關作業表,但在資料庫主表中保留副本。
我希望這是有道理的?


uj5u.com熱心網友回復:
據我所知,您希望將表單的答案提交到主表,然后一旦提交了答案,您就可以將其發送到相關表
為此,我將創建一個表單提交,將答案放在作業表上
const SOURCE_FORM_ID = link; // Change according to your needs
{
const form = FormApp.openById(SOURCE_FORM_ID);
ScriptApp.newTrigger("onFormSubmitTrigger")
.forForm(form)
.onFormSubmit()
.create();
}
function onFormSubmitTrigger(e) {
const targetSpreadsheet = SpreadsheetApp.openById("insert sheet id");
const targetSheet = targetSpreadsheet.getSheetByName("C");
if (targetSheet.getLastRow() === 0) { // Add headers if they don't exist yet
const itemTitles = e.source.getItems().map(item => item.getTitle()); // Get item titles
itemTitles.unshift("Timestamp"); // Append "Timestamp" to the sheet (if desired)
targetSheet.appendRow(itemTitles); // Append form item titles to the sheet
}
const itemResponses = e.response.getItemResponses();
const responses = itemResponses.map(itemResponse => itemResponse.getResponse()); // Get user responses
responses.unshift(new Date()); // Add today's date to the responses (if desired)
targetSheet.appendRow(responses.map(e => Array.isArray(e) ? e.join(",") : e)); // Append responses to the sheet
}
上面的代碼將創建一個鏈接到您的表單的觸發器,該觸發器會將答案提交到特定作業表
之后,編輯或手動觸發的代碼將其移動到相關作業表
var ss = SpreadsheetApp.getActiveSpreadsheet();
var seet = ss.getSheetByName('TC'); //source sheet
var testrange = seet.getRange('J:J'); //range to check
var testvalue = (testrange.getValues());
var csh = ss.getSheetByName('C'); //destination sheet
var data = [];
var j =[];
//Condition check in H:H; If true copy the same row to data array
for (i=0; i<testvalue.length;i ) {
if ( testvalue[i] == 'SENT') {
data.push.apply(data,seet.getRange(i 1,1,1,25).getValues());
//Copy matched ROW numbers to j
j.push(i);
}
}
//Copy data array to destination sheet
csh.getRange(csh.getLastRow() 1,1,data.length,data[0].length).setValues(data);
//Delete matched rows in the source sheet
for (i=0;i<j.length;i ){
var k = j[i] 1;
sheet.deleteRow(k);
//Alter j to account for deleted rows
if (!(i == j.length-1)) {
j[i 1] = j[i 1]-i-1;
}
上面的代碼是我用來將一行移動到另一張作業表,稍作修改,如果您設定表單提交以將表單資料發送到,您可以將其移動到目標作業表,同時將其保留在主作業表中大師
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/363344.html
