如何获取脚本将2个变量的总和添加到表格中的第3列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取脚本将2个变量的总和添加到表格中的第3列相关的知识,希望对你有一定的参考价值。

我有两个单独的脚本,询问用户他们的起步里程(输入第3列)和结束里程(输入第4列)。在输入结束里程后,如何获得输入第10栏的总里程?我已经尝试在工作表上输入一个函数但是被下一个数据输入覆盖了。

我的2脚本看起来像这样:

var StartMileage =  SpreadsheetApp.getUi().prompt("Please enter Start Mileage.").getResponseText();

  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Retrieval Log P1CU X")

  var NewLog = ss.getRange(ss.getLastRow(), 3).setValue( StartMileage );

和,

var Home =  SpreadsheetApp.getUi().prompt("What is your end mileage?").getResponseText();

  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Retrieval Log P1CU X")

  var NewLog = ss.getRange(ss.getLastRow(), 4).setValue( Home );

我想要的基本总和是'Home'的值减去放入第10列的'StartMileage'的值。

脚本设置为在点击按钮时运行,他们将在其中提交响应,第一个按钮将询问他们的姓名并开始里程,最后一个按钮会询问他们的结束里程,按钮将按顺序点击并按两份提交内容都将提交到同一行。我希望脚本在提交结束里程的同时进行计算,该函数如下所示:

function promptHome()
{
  var Home =  SpreadsheetApp.getUi().prompt("What is your end mileage?").getResponseText();

  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Retrieval Log P1CU X")

  var NewLog = ss.getRange(ss.getLastRow(), 4).setValue( Home );

  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Retrieval Log P1CU X")

  var NewLog = ss.getRange(ss.getLastRow(), 9).setValue( new Date() );
}
答案

添加代码以计算并将计算值插入promptHome()函数。并且没有必要像现在在代码中那样获取表格两次。这是函数的外观:

function promptHome() {
  var Home = SpreadsheetApp.getUi().prompt("What is your end mileage?").getResponseText();
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Retrieval Log P1CU X");
  var startMileage = parseInt(ss.getRange(ss.getLastRow(), 3).getValue(), 10);
  var diffMileage = parseInt(Home, 10)-startMileage;
  ss.getRange(ss.getLastRow(), 4).setValue(parseInt(Home, 10));
  ss.getRange(ss.getLastRow(), 9, 1, 2).setValues([[new Date(), diffMileage]]); // insert values into cols 9 and 10 at the same time, so save time
  SpreadsheetApp.flush(); // commit the changes
}

当然,只有当您的用户仅在提示中输入数字时,它才能正常工作。但是如果你允许他们输入任何他们想要的东西(即“15mi”或“shamalamamumu”)并且不验证数据,那么你的问题比函数不起作用更大:)你还应该在你的代码中使用Lock Service来防止并发数据写道。

以上是关于如何获取脚本将2个变量的总和添加到表格中的第3列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Apps 脚本将公式添加到 Google 表格?

如何通过读取shell脚本中的csv文件来将2列的总和添加到新列中

添加一行的 Google 表格脚本

HTML 表单 - 添加新表格行并将焦点设置在第一个输入上的脚本

如何将总和添加到表中并获取 R 中每个单元格的比例

如何创建一个变量,该变量是给定时间范围内连续行的总和并按 id