首页 > 解决方案 > 例外:Google Apps 脚本中的变量参数无效

问题描述

我正在尝试将 Google Sheets 文件与 Google Doc 文件链接,并用一些自定义项目替换 Google Docs 的文本。

Exception: Invalid argument: sheet
autoFillGoogleDocFromForm   @ Code.gs:5

此错误由以下代码生成。我使用(工作表名称)、(插入的文件 id)、(插入的文件夹 id)而不是显示实际值。

function autoFillGoogleDocFromForm(e) {

    var activateSheet = SpreadsheetApp.getActiveSpreadsheet();

    SpreadsheetApp.setActiveSheet(activateSheet.getSheetByName('(name of sheet)'));

    var sheet = SpreadsheetApp.getActiveSheet();
    var row = e.range.getRowIndex();
    var timestamp = sheet.getRange(row, 1).getValues();
    var file = DriveApp.getFileById('(file id inserted)'); 
    var folder = DriveApp.getFolderById('(folder id inserted)');
    var copy = file.makeCopy('' + timestamp, folder); 
    var doc = DocumentApp.openById(copy.getId());
    var header = doc.getHeader();

    header.replaceText('{{TIMESTAMP}}', timestamp);
    doc.saveAndClose(); 

}

标签: google-apps-scriptgoogle-sheetsgoogle-docs

解决方案


您可以简化定义Sheet的方式:

var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName('name of the sheet')

即使你不再使用Spreadsheet对象,你也可以直接定义Sheet对象

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('name of the sheet')

确保你sheet正确地写了名字。


推荐阅读