【发布时间】:2020-05-11 02:49:27
【问题描述】:
我有一个数据表,其中包含: |货品代码 |项目 |版本|
目标是获取项目的最后一个版本并将其增加 0.1,因此如果项目的版本是 03,那么一旦调用此函数,它的新版本将是 3.1。
下面的代码在范围(数据表)中找到第一个,但不是最后一个。我需要找到该项目的最新版本并增加它:
function newVersion() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("ArquivoItens");
var range = sheet.getRange(2,1,ss.getLastRow(),3).getValues();
var editarSheet = ss.getSheetByName('EditarItem');
var itemCode = editarSheet.getRange("W5").getValue();
var version = editarSheet.getRange("AC4").getValue();
for(var a = 0; a < range.length; a++){
if(range[a].lastIndexOf(itemCode)>-1){
Logger.log("Código: "+ itemCode);
Logger.log("Versão: "+ range[a][2]);
Logger.log("Produto: "+ range[a][1]);
Logger.log(range[a].indexOf(itemCode));
return range[a][2];
}
}
任何光线都值得赞赏。
【问题讨论】:
-
确定您想要什么。在您的代码中,您使用
editarSheet.getRange("W5").getValue();获得一个项目代码,然后如果它在您的range中,则您的项目版本增加0.1,对吗?为什么你的函数中有返回值?它是返回到另一个函数还是您正在使用Custom function? -
嗨,@albertovielma!这个想法是,如果用户单击确认,将调用函数 newVersion。然后,正在编辑的项目将以其版本 + 0.1 保存。感谢您的调查。
-
感谢您提供的信息。你是说如果用户点击了确认。这意味着您正在使用Custom Menus?您能否提供一个包含一些虚拟数据的电子表格。解决错误会更容易
-
感谢您对此进行调查。用户将看到一个弹出窗口,要求他确认。然后,代码继续运行并调用该函数。
标签: google-apps-script google-sheets lastindexof