0

我正在尝试设置一个宏来更新数据库中的数据表并记录更新时间。当我尝试运行宏时出现错误。

据我从谷歌了解到,这是一个授权问题。我需要此代码自行授权用户并工作。如何将用户身份验证添加为此宏的一部分?

错误信息:

例外:Apps 脚本不支持数据源类型。(第 19 行,文件“宏”)

第 19 行:电子表格.getCurrentCell().getDataSourceTables()[0].refreshData();

function Timestamp() {
  var spreadsheet = SpreadsheetApp.getActive();
  
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Americas_DB'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  spreadsheet.getActiveSheet().getDataSourceTables().forEach(function(dataSourceTable) { dataSourceTable.waitForCompletion(300) });
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  spreadsheet.getActiveSheet().getDataSourceTables().forEach(function(dataSourceTable) { dataSourceTable.waitForCompletion(300) });
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('EMEA_DB'), true);
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  spreadsheet.getActiveSheet().getDataSourceTables().forEach(function(dataSourceTable) { dataSourceTable.waitForCompletion(300) });
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Timestamp'), true);
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('A1').activate();
  spreadsheet.getCurrentCell().setValue('Last updated');
  spreadsheet.getRange('B1').activate();
  spreadsheet.getCurrentCell().setFormula('=now()');
  spreadsheet.getRange('B2').activate();
4

0 回答 0