我有一个 iOS 快捷方式,可以将待办事项添加到 Google Sheets 的待办事项列表中(Code.gs:),然后我还有一个宏,每当我从 D 列的下拉菜单中选择一个选项卡时,它就会组织我的原始待办事项列表(macro.gs)。当每个代码位于各自的文件中时,它们都可以正常工作;但是当它们位于同一个文件中时,Code.gs 可以正常工作,而 Macro.gs 则无法正常工作,并出现以下错误:
异常:指定的权限不足以调用 SpreadsheetApp.openById。所需权限:https://www.googleapis.com/auth/spreadsheets,未知函数
非常感谢任何帮助!!
代码.gs:
var financesheet = SpreadsheetApp.openById("IDDDDDD").getSheetByName("Inbox");
function doGet(e) {
var account = JSON.parse(e.parameters.account)
var detail = JSON.parse(e.parameters.detail)
var formattedTime = Utilities.formatDate(new Date(), "GMT-4", "h:mm a");
var formattedDate = Utilities.formatDate(new Date(), "GMT-4", "EEE, MMM d, yyyy");
financesheet.appendRow([formattedDate,account,detail]);
}
宏.gs:
function onEdit(e) {
// Log the event to check if the function is triggered
Logger.log('onEdit Triggered');
// Ensure the edit is made in the "Inbox" sheet
var sheet = e.source.getSheetByName("Inbox");
if (!sheet) return; // Exit if the edit is not in the "Inbox" sheet
var editedRange = e.range;
// Log details about the edited range to verify which column is being edited
Logger.log('Edited Range: ' + editedRange.getA1Notation());
// Check if the edited column is column D (index 4)
if (editedRange.getColumn() === 4) {
var valueC = editedRange.getValue(); // Get the value of column D (4th column)
// Log the value of column D to the Execution Log
Logger.log('Value in Column D (Row ' + editedRange.getRow() + '): ' + valueD);
// Check if column D has a value
if (valueD != "") {
var rowValues = sheet.getRange(editedRange.getRow(), 1, 1, 3).getValues()[0]; // Get values from columns A, B, and C
var destinationSheet = e.source.getSheetByName(valueD);
// Append values from columns A, B, and C to the end of the destination sheet
if (destinationSheet) {
destinationSheet.appendRow(rowValues);
// Delete the row from the Inbox tab
sheet.deleteRow(editedRange.getRow());
}
}
}
}