You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Google文档ID获取表格最后修改人及App Script报错求助

问题解决:Google Apps Script列数不匹配报错

报错原因

你修改后的脚本中,当H列单元格没有链接时,返回的是[null](仅1列数据),但其他有链接或无效链接的情况返回的是[日期, 用户名]或[null, null](2列数据),导致生成的values数组里子数组长度不一致,最终和输出范围的列数不匹配,触发报错。

修正后的脚本

function myFunction() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  const range = sheet.getRange("h2:h" + sheet.getLastRow());
  const values = range.getRichTextValues()
    .map(([a]) => {
      const link = a.getLinkUrl();
      // 无链接时返回2个null,保证所有子数组统一为2列
      if (!link) return [null, null];
      const id = link.split("/")[5];
      if (id) {
        const { lastModifyingUser: { displayName, emailAddress }, modifiedDate } = Drive.Files.get(id, { fields: "lastModifyingUser(displayName,emailAddress),modifiedDate" });
        // 按需选择返回用户名或邮箱,当前返回用户名,换邮箱就改成emailAddress
        return [new Date(modifiedDate), displayName];
      }
      return [null, null];
    });
  range.offset(0, 1, values.length, 2).setValues(values);
}

必要操作说明

因为用到了Drive.Files.get接口,需要在脚本编辑器中启用Drive API:

  • 打开脚本编辑器后,点击左侧菜单栏的服务(⚙️图标)
  • 找到Drive API,点击添加完成启用

内容的提问来源于stack exchange,提问作者Alianna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:54:57