我的函式從源 URL 中獲取一個范圍,并將這些值“粘貼”到目標作業表中的一個范圍中。
問題是 .openByUrl 僅在我在函式中設定變數時才有效。如果我使用 .openById,同樣的錯誤
如果我運行函式 inputPrompt() 并將粘貼到提示中的 URL 傳遞,我會得到“例外:無效引數:url”。
如果我運行完全相同的代碼,但提供完全相同的 URL 作為字串,它會完美運行。
我錯過了什么?
function getSourceDataFromURL(urlString) {
// If I uncomment the line below, it works perfectly.
//urlString = "https://docs.google.com/spreadsheets/d/1b6fOAWdJeVrHPY2UDPmx4VNPn_qJ__5daGkj4_FzynI/edit#gid=0"
var sourceData = SpreadsheetApp.openByUrl(urlString).getSheetByName("Exporter").getRange("C3:AC3").getValues(); //AC3
return sourceData
}
function inputPrompt(){
var ui = SpreadsheetApp.getUi()
var result = ui.prompt("Create row from URL", "Paste the URL here",ui.ButtonSet.OK_CANCEL)
var button = result.getSelectedButton()
var urlString = result.getResponseText()
if (button == ui.Button.OK) {
var importedSourceData = getSourceDataFromURL(urlString)
createRowFromImportedData(importedSourceData)
} else if (button == ui.Button.CANCEL) {
} else if (button == ui.Button.CLOSE) {
}
}
uj5u.com熱心網友回復:
無法重現問題:
function openupanotherss() {
const ss = SpreadsheetApp.getActive();
const r = SpreadsheetApp.getUi().prompt("Url", "Enter Url", SpreadsheetApp.getUi().ButtonSet.OK);
if (r.getSelectedButton() == SpreadsheetApp.getUi().Button.OK) {
let url = r.getResponseText();
const dss = SpreadsheetApp.openByUrl(url);
const sh = dss.getSheetByName("Sheet0");
Logger.log(JSON.stringify(sh.getDataRange().getValues()));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/536458.html
標籤:谷歌应用脚本
上一篇:將多行添加發送到電子郵件地址