Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何更新与lastrow google应用程序脚本不同的同一行中的行返回_Google Apps Script - Fatal编程技术网

Google apps script 如何更新与lastrow google应用程序脚本不同的同一行中的行返回

Google apps script 如何更新与lastrow google应用程序脚本不同的同一行中的行返回,google-apps-script,Google Apps Script,我有这样一个搜索工具: https://sites.google.com/site/appsscriptexperiments/home/a-simple-search-tool-ui 但是把它放在一个面板中,添加一个编辑按钮来启用txtboxs,并添加一个更新按钮来保存更改。但是,我将如何更新搜索过的同一行中的现有数据?可能吗?是,它正在更新,但返回到最后一行。不在同一排 function updatebutton(e){ var ss = SpreadsheetApp.openBy

我有这样一个搜索工具:

https://sites.google.com/site/appsscriptexperiments/home/a-simple-search-tool-ui 
但是把它放在一个面板中,添加一个编辑按钮来启用txtboxs,并添加一个更新按钮来保存更改。但是,我将如何更新搜索过的同一行中的现有数据?可能吗?是,它正在更新,但返回到最后一行。不在同一排

function updatebutton(e){ 
  var ss = SpreadsheetApp.openById('exampleID').getActiveSheet();

  var sheet = SpreadsheetApp.getActiveSpreadsheet();

  var lastRow = ss.getLastRow();

  var row= ss.getDataRange().getRowIndex();

  var app = UiApp.getActiveApplication();

  var timestamp = e.timestamp = new Date() +  
  Session.getActiveUser().getUserLoginId();

  var txt0 = e.parameter.txt0;

  var txt1 = e.parameter.txt1;

  var txt2 = e.parameter.txt2;

  var txt3 = e.parameter.txt3;

  var data = ss.getRange(lastRow+1, 1, 1,4).setValues([[timestamp,txt1,txt2,txt3]]);

  return app;

}

或者,是否可以识别我要输入数据的行?帮助不大就行了。谢谢

您似乎正在使用搜索电子表格并在单元格中查找值的代码。然后要更新该行数据。如果正在使用
for
循环,则
for
循环的计数可以与行匹配。如果您获取一个数据数组,然后在数组中查找值的索引,那么索引号可以与行号匹配

您可以获取当前活动的行号。但在程序运行之前,您需要单击要更新的行

var theActiveSheet = SpreadsheetApp.getActiveSheet().getName();
//Logger.log('theActiveSheet: ' + theActiveSheet);

if (theActiveSheet === 'your sheet name') {
  //Ask to Overwrite only if this is the correct sheet
  var updateThisRow = Browser.msgBox('UPDATE CURRENT ROW?', 'Overwrite current rows data', Browser.Buttons.YES_NO);
};

if (updateThisRow === 'yes') {    
  var currentRow = ss.getActiveCell().getRow();
  var data = ss.getRange(currentRow, 1, 1,4).setValues([[timestamp,txt1,txt2,txt3]]);
};

天哪,谢谢你的回复。我试过了,但什么也没发生-看一下我的应用程序和电子表格我也在看这个,但我做不好请看一下谢谢你需要使用调试工具。您可以向代码中添加
Logger.log('some text:'+variableName)
语句,然后查看日志,查看代码实际执行的操作,或者使用调试器逐步完成代码。上面写着[15-04-04 00:09:56:510 PHT]sheet:null是否有其他方法通过不单击行来更新行?。。。。它可能被其他用户使用,他们只能查看电子表格。有没有办法和你分享我的剧本?这样你就能看到实际的问题了?那是唯一的事情,然后我就完成了。。请看。谢谢你的时间是的,我使用搜索工具,但我把它放在我的应用程序太。。。然后搜索字符串(如果存在/匹配)。它将显示在TXTBOX上。单击edit(编辑)以启用TBX,并单击update(更新)按钮以保存更改(如果有)。在粘贴代码后,我也遇到了一个问题。。它向我提供了一个“遇到错误:发生意外错误”和“下一步”按钮。在我的搜索中,在“无其他匹配”之后返回“——————它们在同一个面板中。”。。等待你的代表。。谢谢你发布的代码没有显示任何搜索功能。如果您的代码正在查找某些信息,那么有一些方法可以确定找到的信息是哪一行。但是您当前的代码没有显示任何可以找到任何信息的内容。