Google apps script 单击按钮更改电子表格中的行

Google apps script 单击按钮更改电子表格中的行,google-apps-script,Google Apps Script,当你点击一个按钮时,你如何对一个数字进行加减。我只想说 if (button.click){ num++; } 我怎么能用谷歌应用程序脚本按钮做这样的事情呢?事情对我来说似乎不那么简单,因为我从未使用过点击处理程序。这可能是我错过的一些简单的东西。谢谢您的帮助。请查看此演示代码: var sh = SpreadsheetApp.getActiveSheet(); var ss = SpreadsheetApp.getActiveSpreadsheet(); // function mo

当你点击一个按钮时,你如何对一个数字进行加减。我只想说

if (button.click){
    num++;
}

我怎么能用谷歌应用程序脚本按钮做这样的事情呢?事情对我来说似乎不那么简单,因为我从未使用过点击处理程序。这可能是我错过的一些简单的东西。谢谢您的帮助。

请查看此演示代码:

var sh = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
//
function move() {
   var app = UiApp.createApplication().setTitle("move test")
       .setHeight(100).setWidth(400).setStyleAttribute("background-color","beige");
   var panel = app.createVerticalPanel();
   var next = app.createButton('next').setWidth('180');
   var chkmode = app.createCheckBox("moving mode (checked = up/dwn, unchecked=L/R)").setValue(false).setName('chkmode');
   panel.add(next).add(chkmode);
   var handler = app.createServerHandler('click').addCallbackElement(panel);
   next.addClickHandler(handler);
   app.add(panel);
   ss.show(app);
 }
//
function click(e) {
  var app = UiApp.getActiveApplication();
  var activeline = sh.getActiveRange().getRow();// get the row number of the selected cell/range
  var activecol = sh.getActiveRange().getColumn();// get the row number of the selected cell/range
  var chkmode=e.parameter.chkmode;// this returns a string, that's why true is written "true" just below...
  if(chkmode=="true"){
    ++activeline
    }else{
      ++activecol} // the ++ can be before or after the var name, your choice ;-)
  var sel=sh.getRange(activeline,activecol);
  sh.setActiveSelection(sel);// make the next row or column active
  return app;
 }
编辑:(在第二个问题之后)要获得显示单元格内容的标签,可以在处理函数中使用以下代码:

function click(e) {
  var app = UiApp.getActiveApplication();
  var activeline = sh.getActiveRange().getRow();// get the row number of the selected cell/range
  var activecol = sh.getActiveRange().getColumn();// get the row number of the selected cell/range
  var cellvaluestring = sh.getActiveRange().getValue().toString();
  var label = app.getElementById('label');
  label.setText(cellvaluestring);
  var chkmode=e.parameter.chkmode;
  if(chkmode=="true"){
    activeline++
    }else{
      activecol++}
  var sel=sh.getRange(activeline,activecol);
  sh.setActiveSelection(sel);// make the next row active
  return app;
 }
在Ui定义中,您必须创建如下标签:

   var label = app.createLabel("test Label with text that will be modified on click").setId('label');
   panel.add(label);

嗯,这并不像你想要的那么简单,但也不是很难做到。。。请参阅下面的答案感谢您的回答。还有一件事,要显示来自活动单元格的信息,我只需执行以下操作:label.setText(sh.getRange(sh.getActiveRange().getRow(),sh.getActiveRange().getColumn()).getValue());看看我刚才回答的下一篇帖子,我添加了一个标签,并解释了如何修改它的值。另外,如果您认为我回答了您的第一个问题,请将其标记为已回答。thxI在您的请求中添加了编辑。