我想问一下我有几行代码。直到昨天,一切对我来说都很完美。
现在,当我开始调试脚本时,它以第 24 行的错误消息结束 => var ui = SpreadsheetApp.getUi();。
异常:无法从此上下文调用 SpreadsheetApp.getUi()。 输入框@ulozDataDoDb.gs:24
但是当我从谷歌表格中的按钮运行这个脚本时,它可以工作。
有谁知道如何处理它吗?
function inputBox() {
//definice aktivního sešitu
var ss = SpreadsheetApp.getActive();
//definice aktivního listu
var faktura = ss.getSheetByName("faktura");
var dataBaze = ss.getSheetByName("db");
//definice promenných pro dalši práci
var cisloFaktury = faktura.getRange("I3").getValue();
var varSymbol = faktura.getRange("E22").getValue();
var datumVystaveni = faktura.getRange("datumVystaveni").getValue();
var prijmeni = faktura.getRange("prijmeni").getValue();
var jmeno = faktura.getRange("jmeno").getValue();
var prijmeniJmeno = jmeno + " " + prijmeni;
var castka = faktura.getRange("I55").getValue();
var konstSymb = faktura.getRange("E23").getValue();
var specSymb = faktura.getRange("E24").getValue();
var formaUhrady = faktura.getRange("E19").getValue();
//zapsat do DB
//popis do DB
var ui = SpreadsheetApp.getUi();
var popis_v_DB = ui.prompt("Zadejte název do DB.").getResponseText();
popis_v_DB = popis_v_DB.split(" ").join("_"); //vyhledá mezery a nahradí znakem
答案 0 :(得分:1)
尝试更换
var ui = SpreadsheetApp.getUi();
var popis_v_DB = ui.prompt("Zadejte název do DB.").getResponseText();
由
var popis_v_DB = Browser.inputBox("Informace.", "Zadejte název do DB.", Browser.Buttons.OK_CANCEL);
但就您要求某人输入值而言,您将通过工作表而不是脚本编辑器来完成!
答案 1 :(得分:0)
您收到的 Cannot call SpreadsheetApp.getUi() from this context.
异常是因为 prompt
必须由用户而不是脚本来处理。
prompt(prompt)
- 将在用户的编辑器中打开一个输入对话框,其中包含给定的消息和“确定”按钮。此方法在对话框打开时挂起服务器端脚本。用户关闭对话框后,脚本会继续运行。