Google表单提交触发脚本执行但未写入数据的问题求助
Google表单提交触发脚本执行但未写入数据的问题求助
各位好,我现在碰到个棘手的问题:之前由同事创建的Google Sheets脚本,在他的账号被停用后就失效了。这些脚本原本运行正常,但现在只有我手动向表格录入数据时才能正常工作——如果是通过关联的Google Form提交数据,脚本要么执行日志显示“完成”但完全没写入数据,要么直接显示执行失败,结果都没法正常更新表格内容。
下面是其中一个出问题的脚本示例:
function updateColumnsBasedOnCondition() { // Replace 'YOUR_SHEET_ID' and 'SHEET_NAME' with your actual sheet ID and sheet name var sheet = SpreadsheetApp.openById('1Ew25yFrtVlejqGgO6LKpZFe4sjO3hQ4fdGHg7Xbcaag').getSheetByName('New 2024 QD+'); if (!sheet) { Logger.log("Sheet not found"); return; } // Get the data range of the sheet var range = sheet.getDataRange(); // Get all the values in the sheet as a 2D array var values = range.getValues(); // Iterate through each row in the data for (var i = 0; i < values.length; i++) { var cellOValue = values[i][14]; // Value in column O for the current row (assuming index 14 for column O) var cellPValue = values[i][15]; // Value in column P for the current row (assuming index 15 for column P) // Log the value of column O Logger.log('Row ' + (i + 1) + ' Column O value: ' + cellOValue); // Check if column O value equals 'Standard new DC order' if (cellOValue.toString().trim() === 'Standard new DC order') { // Log that the condition was met Logger.log('Condition met at row ' + (i + 1)); // Update corresponding columns Q, R, S, V, W, X, Z (assuming indexes 16, 17, 18, 21, 22, 23, 26) sheet.getRange(i + 1, 17).setValue(250); // Column Q (index 16 + 1) if (cellPValue.toString().trim() === 'Pending State Petitions') { sheet.getRange(i + 1, 18).setValue(30); // Column R (index 17 + 1) sheet.getRange(i + 1, 19).setValue('Double-sided'); // Column S (index 18 + 1) } else if (cellPValue.toString().trim() === 'Passed States Petitions') { sheet.getRange(i + 1, 20).setValue(30); // Column T (index 19 + 1) sheet.getRange(i + 1, 21).setValue('Double-sided'); // Column U (index 20 + 1) } sheet.getRange(i + 1, 22).setValue(50); // Column V (index 21 + 1) sheet.getRange(i + 1, 23).setValue(25); // Column W (index 22 + 1) sheet.getRange(i + 1, 24).setValue(25); // Column X (index 23 + 1) sheet.getRange(i + 1, 26).setValue(25); // Column Z (index 25 + 1) // Log that the values were set Logger.log('Values set for row ' + (i + 1)); } } // Flush the logs Logger.log('Script completed.'); }
我已经尝试过以下排查步骤,但问题依然存在:
- 删除原有脚本后重新粘贴同事的原始代码
- 单独逐个测试每个脚本,排除多脚本冲突的可能
- 从零开始重写了一遍该脚本,确保没有语法或逻辑错误
- 检查并修复了脚本触发器的设置,确认触发器已启用
- 尝试了多种触发器类型:包括
onedit、onformsubmit,以及直接触发updateColumnsBasedOnCondition函数
不管用哪种方式,要么执行日志显示“失败”,要么显示“完成”,但最终数据都没有被正确写入到表格对应的列中。有没有朋友遇到过类似的问题,或者能帮我看看哪里出了问题?
备注:内容来源于stack exchange,提问作者Cody
相关产品推荐
相关产品推荐

