让按钮用另一张纸上的一列中的下一个可用数字自动填充单元格的最佳方法是什么?

问题描述 投票:1回答:1

我有一个Google Sheet,其中包含两张纸;一个名为“表格”,在其中输入数据,另一个名为“数据”,在其中接收输入的数据。我正在寻找的最佳方法是在“表单”表上具有“自动填充”按钮,并使用“数据表”中列A的最后一个数字填充单元格B2,再加上1。

[目前,我是通过公式进行工作的:=INDEX(Data!A2:A,COUNTA(Data!A2:A))+1链接到数据表上的单元格F1,并通过链接到此代码的按钮复制到表单表上的单元格B2:

function AutoFill() {
   var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');            
   var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form');            
   sheet1.getRange('F1').copyTo(sheet2.getRange('B2'),{contentsOnly:true})
}

..但这并不理想。我猜测最好的方法是将公式直接转换为脚本,但是我不确定如何转换其功能。有人有什么想法吗?

google-apps-script
1个回答
2
投票
  • 您想将值放入表单“表格”的单元格“ B2”。
    • 将值“ 1”添加到工作表“数据”的列“ A”的最后一行的值。
  • 您想通过单击电子表格上的“自动填充”按钮来运行脚本。
  • 您想使用Google Apps脚本来实现。

如果我的理解是正确的,那么该修改如何?我认为使用公式可以使情况变得简单。但是,如果您只想在单击按钮时更改该值,则使用脚本可能适合实现它。我认为您的情况有几个答案。因此,请仅将此作为几个答案之一。

修改的脚本:

在此修改中,您的脚本已修改。请如下修改AutoFill的功能。

function AutoFill() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form');
  var valueOfData = sheet1.getRange(sheet1.getLastRow(), 1).getValue(); // Added
  sheet2.getRange('B2').setValue(valueOfData + 1); // Added
}
  • 检索该值,该值是工作表“数据”的列“ A”的最后一行。然后,通过将检索到的值加1,将其放置在shee“表单”的单元格“ B2”中。

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。

© www.soinside.com 2019 - 2024. All rights reserved.