如何将Google Sheets游戏日志记录至独立电子表格?
解决Google Sheets Apps Script访问外部表格的问题
错误原因分析
你遇到的报错核心有两个问题:
- ID使用错误:
SpreadsheetApp.openById()需要传入的是整个电子表格的ID,而你误用了工作表的gid(1154300080)。从你提供的链接里,正确的电子表格ID是1fTE_TnuysR5LKbyPDzPxU63hOu6BISH6YYJ0udoViZA。 - 权限未授权:脚本访问外部表格需要额外的权限,首次运行时必须完成授权流程。
修正后的代码示例
// Function to submit the tempt fate gameplay data to Log sheet function submitDatatemptfate() { var myGoogleSheet = SpreadsheetApp.getActiveSpreadsheet(); var Game = myGoogleSheet.getSheetByName("Game"); // 使用正确的外部电子表格ID,再获取目标工作表 var logSpreadsheet = SpreadsheetApp.openById("1fTE_TnuysR5LKbyPDzPxU63hOu6BISH6YYJ0udoViZA"); var Log = logSpreadsheet.getSheetByName("你的日志工作表名称"); // 替换成外部表格里的日志工作表名 var ui = SpreadsheetApp.getUi(); var response = ui.alert("Last chance...", 'Are you sure you want to Tempt Fate?', ui.ButtonSet.YES_NO); if (response == ui.Button.NO) { return; } // 示例:将Game表A1单元格内容+时间戳写入日志表 var userChoice = Game.getRange("A1").getValue(); var timestamp = new Date(); Log.appendRow([timestamp, userChoice]); }
关键步骤说明
- 获取正确的电子表格ID:
打开外部日志表格,从浏览器地址栏提取d/和/edit之间的字符串,就是表格ID。 - 完成权限授权:
第一次运行修正后的脚本时,会弹出授权提示。按流程完成授权(允许脚本访问你的Google Drive文件),否则无法访问外部表格。 - 确认工作表名称:
确保getSheetByName()传入的是外部表格中实际存在的日志工作表名称,大小写、拼写需完全匹配。
常见排查点
- 若授权后仍报错,检查外部表格的共享权限:确保运行脚本的Google账号拥有该表格的编辑权限。
- 核对代码中所有标识符的拼写,包括表格ID、工作表名称、函数名等。
内容的提问来源于stack exchange,提问作者A.Bully
相关产品推荐
相关产品推荐

