库存管理

时间:2017-10-31 13:53:00

标签: google-sheets

我正在尝试找到一个脚本,当我在其中添加我的部件号和数量时添加到我的列表中,当输入错误的部件号时,它会显示错误消息,显示无效的部件号。

spreadsheet screenshot

我不确定自己是否走在正确的轨道上。这就是我目前所拥有的。

function addQty() {
  var ssheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ssheet.getSheetByName('List');
  var inputPartnum = ssheet.getRange("K2").getValue(); 
  var inputQty = ssheet.getRange("$L$2").getValue();
  var partNum1 = ssheet.getRange("I").getValue();

if (inputPartnum=partNum1){
  var num1 = ssheet.getRange("C").getValue();  
  ssheet.getRange("C").setValue(inputQty+num1); 
  ssheet.getRange('K2').clear();
  ssheet.getRange('L2').clear();
    }
  else {
    catch (error) {
        throw new Error( "Part Number Not Found" );
    ssheet.getRange('K2').clear();
    ssheet.getRange('L2').clear();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你很亲密。您需要循环查看部件号以查找匹配项。试试这个:

  function addQty() {
  var ssheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ssheet.getSheetByName('List');
  var lr= sheet.getLastRow()
  var inputPartnum = sheet.getRange("K2").getValue().toLowerCase(); 
  var inputQty = sheet.getRange("$L$2").getValue();
  var partNum1 = sheet.getRange(6,9,lr,1).getValues();//Array of part numbers
  var count=0 //Set counter
  for(var i=0;i<partNum1.length;i++){ //Loop through part numbers
    if (inputPartnum == partNum1[i][0].toLowerCase()){
      var num1 = ssheet.getRange("C"+(i+6)).getValue(); //Get current part count 
      ssheet.getRange("C"+(i+6)).setValue(inputQty+num1); 
      count=count+1 //Add to count if a match is found
      ssheet.getRange('K2').clear();
      ssheet.getRange('L2').clear();
      break
  }}
  if(count==0){// If no matching part number is found give message.
     Browser.msgBox( "Part Number "+inputPartnum+" Not Found" );
     ssheet.getRange('K2').clear();
     ssheet.getRange('L2').clear();
  }}

我更改了脚本以获取所有部件号。如果这不是你想要的,请解释你的目标。