【发布时间】:2023-04-01 06:50:02
【问题描述】:
我想在我双击 Google 表格中的一个单元格时提示一个输入框。 完美的例子是当您在 Google Sheet 中保护一个范围时,无论谁试图双击受保护的范围,都会收到一个提示消息框。我想用输入框做同样的事情。
我使用的代码的简化版是:
function editCell(e){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("*** SEARCH ***");
var lule = sheet.getActiveCell().getValue();
SpreadsheetApp.flush();
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Edit Contact ', '('+lule+')', ui.ButtonSet.OK_CANCEL);
// Process the user's response.
if (response.getSelectedButton() == ui.Button.OK) {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contacts");
ss.insertRow(1)
ss.getRange(1,1).setValue(response.getResponseText());
}
else if (response.getSelectedButton() == ui.Button.CANCEL) {
Logger.log('no');
}
else {
Logger.log('nope');
}
}
谢谢
更新代码
function setCell(){
//e.source.toast('flag1');
var sh = SpreadsheetApp.getActiveSpreadsheet();
if(sh.getSheetName() == "Contacts" == true){
Logger.log('nope');
}
else if(sh.getSheetName() == "*** SEARCH ***" == true){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("*** SEARCH ***")
var cel = sheet.getActiveCell();
var val = cel.getValue();
var row = cel.getRow();
var col = cel.getColumn();
cel.setValue("");
var lule = sheet.getRange(row,col).getValue();
var line = sheet.getRange(row,1,1,1).getValue();
sheet.getRange("A4").setValue(line)
sheet.getRange("A5").setValue(col)
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contacts");
ss.getRange(line+4,col).setValue(val);
}
}
【问题讨论】:
-
ss.addrow(1)是什么意思?addRow()不是Sheet类 (return type ofgetSheetByName()) 的方法。 -
我的意思是
insertRow(1),这意味着在第 1 行只添加 1 行。它可以在 X、Y 或 Z 行添加一行。 -
insertRow()也不是一种方法。请在请求他人帮助之前阅读文档并测试您的代码,因为文档包含您需要的方法。我想你要找的是Ui.alert()。 -
insertRows()会让你更满意吗? developers.google.com/apps-script/reference/spreadsheet/… -
对不起,我不是想搞笑。 Stackoverflow 是一个供开发人员互相帮助并在文档存在时猜测方法名称的论坛,这为试图帮助您的人们留下了额外的、不必要的工作。查看How to create a Minimal, Reproducible Example。
标签: google-apps-script input google-sheets prompt