我已经在Spreadsheet的脚本编辑器中编写了一个函数,该函数旨在关注包含当前日期的单元格。通常,当通过菜单项触发功能时,它可以工作,但是在加载电子表格后,它将不会集中在任何单元格上。
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Go to Today",
functionName : "goToToday" // goToToday() contains same code as last 3 lines of onOpen()
}];
spreadsheet.addMenu("Script", entries); // works on manual run and on startup
var s = spreadsheet.getSheetByName("Sheet1");
var r = 25 + s.getRange("I4").getValue();
s.setActiveSelection(s.getRange("A" + r )); // works on manual run, doesn't work on startup
};
按照Bryan的回答,我尝试了另一种可能的代码,该代码将自动关闭对话框。
我调用UiApp弹出窗口的方式进行了一些小的更改。
function onOpen() {
var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var ui = SpreadsheetApp.getUi();
ui.createMenu('Goto today').addItem('go !','goToToday').addToUi();
var app = UiApp.createApplication().setHeight(40).setWidth(180).setTitle('Start');
var btn = app.createButton('Go to Today in cell A'+(25 + (s.getRange("I4").getValue())), app.createServerHandler("goToToday"))
.setStyleAttributes({'fontFamily':'arial','fontSize':'10pt','fontWeight':'bold','color':'white','background':'#3870ff'}).setPixelSize(175,35);
app.add(btn);
SpreadsheetApp.getActive().show(app);
}
function goToToday() {
var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var r = 25 + s.getRange("I4").getValue();
s.setActiveSelection(s.getRange("A" + r ));
return UiApp.getActiveApplication().close();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句