我有一個專案,其中包含以下表格:
KDCLog
KDCAlerts
KDCAssets
使用谷歌腳本我打開“活動”日志(預計是“KDCLog”)。
function onEdit(e) {
var activeSheet = e.source.getActiveSheet();
if (activeSheet.getName() !== "KDCLog" ) return;
完成此操作后,我正在嘗試打開另一個(外部)作業表。為此,我按照以下說明進行操作:
ref: https://stackoverflow.com/questions/70070131/form-data-submit-to-external-sheet-google-script
//open external sheet
var extSS = SpreadsheetApp.openById("Insert External Spreadsheet ID here");
var extSH = extSS.getSheetByName("Sheet1 External");
我按照這里的訊息來識別gid(它是帶有 8 個向上箭頭投票的那個)參考:Get Google Sheet by ID?
所以我最終得出的結論是:
var extSS = SpreadsheetApp.openById(1591999114);
var extSH = extSS.getSheetByName("KDCAlerts");
但是在執行上面的 2 個陳述句時,我收到以下訊息:
Error Exception: You do not have permission to call SpreadsheetApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets
at onEdit(Code:150:32)
我究竟做錯了什么?任何幫助、提示或建議將不勝感激!
TIA
@Cooper - 感謝您的回復!
更新 1:
我做了以下更改:
//https://docs.google.com/spreadsheets/d/1b5qiNH8c4wg0h1owr-P3OLRuLf-8dTBgRU9cHLBbd2A/edit#gid=1591999114
var extSS = SpreadsheetApp.openById('1b5qiNH8c4xxxxxxxx-P3OLRuLf-8dTBgRU9cHLBbd2A');
var extSH = extSS.getSheetByName("KDCAlerts");
- 和 -
我在這里找到了參考此鏈接的訊息: https ://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes
我對appscript.json檔案進行了如下更改:
{
"timeZone": "America/Chicago",
"dependencies": {},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
"executeAs": "USER_DEPLOYING",
"access": "ANYONE_ANONYMOUS"
},
"oauthScopes": [
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/spreadsheets"
]
}
仍然收到錯誤。
更新 2:
再次感謝您的回復。我在下面進行了更改。
function creatTrigger() {
if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "onMyEdit").length == 0) {
ScriptApp.newTrigger("onMyEdit").forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
}
}
function onMyEdit(e) {
var sh = e.range.getSheet();
if (sh.getName() == "KDCLog" ) {
var extSS = SpreadsheetApp.openById('1b5qiNHxxxxxxxxowr-P3OLRuLf-8dTBgRU9cHLBbd2A');
var extSH = extSS.getSheetByName("KDCAlerts");
}
else { return; }
.....
.....
.....
}
我現在收到的資訊是:
Script function not found: onEdit
我做錯了什么?
TIA
uj5u.com熱心網友回復:
嘗試這樣的事情:
function creatTrigger() {
if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "onMyEdit").length == 0) {
ScriptApp.newTrigger("onMyEdit").forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
}
}
function onMyEdit(e) {
var sh = e.range.getSheet();
if (sh.getName() == "KDCLog" ) {
var extSS = SpreadsheetApp.openById("xssid");
var extSH = extSS.getSheetByName("Sheet1 External");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/512529.html
標籤:谷歌应用脚本谷歌表格
